[Powered by Google Translate] TOMMY: Šajā video, mēs uzzinātu par novirzot un caurules. Līdz šim mēs esam izmantojot funkcijas, piemēram, printf izejas dati uz terminālu un funkcijas, piemēram, GetString ļaut lietotājam sniegt ieguldījumu mūsu programmu, izmantojot tastatūru. Pieņemsim ātri to apskatīt programmas, kas izpaužas līnija no lietotāja ievadi un pēc tam izvada to. Gada 7 līnijā, mēs esam pamudinot lietotājam par stīgu, un tad par 8 līnijā, mēs esam drukāšanas atpakaļ out. Pieņemsim apkopot un palaist mūsu programmu. Lieliski. Stīgu mēs ja atbalsojās atpakaļ mums uz terminālu. Tas notika tāpēc, ka printf funkciju rakstīja plūsma sauc standarta ārā, vai s-t-d-out. Kad kaut kas ir rakstīts uz stdout, tas ir pēc noklusējuma parādīti ar terminālā. Tā ka viss ir labi un labs, bet kas notiks, ja tā vietā, lai vienkārši parādot virkni, mēs vēlējāmies, lai saglabātu to failu? Piemēram, mēs varētu vēlēties, lai atcerēties, ko tieši mūsu Programma bija, kad mēs deva tam īpašu ieguldījumu vēlāk. Viena pieeja būtu izdarīt mūsu C programmas, izmantojot dažas īpašas funkcijas rakstot uz failiem ka mēs sk citā video. Pat vieglāk, lai gan, būtu kaut novirzīt stdout uz failu. Tādā veidā, kad printf raksta stdout, saturs tiks būt rakstīts uz failu, nevis parādīti ar terminālā. Mēs varam darīt tikai, ka, pievienojot lielāks nekā zīmi, sekoja ar faila nosaukumu, ar komandu, mēs izmantojam, lai izpildīt mūsu programmu. Tātad, nevis vienkārši izpildes / pārorientēt. Mēs varam palaist / pārorientēt., kam seko vairāk nekā zīme, kam seko filename, piemēram file.txt. Paskatīsimies, kas notiek. Labi. Ievērojiet, ka šoreiz nekas netika parādīts pie termināla, bet mēs esam ne pārveidotas saturu mūsu C programma vispār. Pieņemsim tagad izskata saturu šajā direktorijā ar ls. Labi. Mums tagad ir jauns mūsu direktorijā failu sauc file.txt, kas ir faila nosaukums mēs piegādā kad mēs ilga OUR Novirzīt programmu. Pieņemsim atvērt file.txt. Un šeit mēs varam redzēt, ka stdout no novirzīšana bija rakstīts uz failu sauc file.txt. Tāpēc pieņemsim palaist iepriekšējo komandu vēlreiz, bet sniedzot dažāda ienākošā šoreiz. Labi. Pieņemsim to apskatīt file.txt tagad. Mēs varam redzēt šeit, ka fails ir pārrakstīts, lai mūsu oriģināls ievade nav tur vairs. Ja mēs tā vietā vēlaties pievienot šo failu, liekot jaunais ievades turpmāk esošajiem faila saturu, mēs varam izmantot divas lielāka nekā apzīmējumus, nevis tikai vienu. Mēģināsim to. Tagad, ja mēs atveram file.txt atkal, mēs varam redzēt gan mūsu ievades līnijas. Dažos gadījumos mēs varētu vēlēties, lai izmestu kādu produkciju mūsu programmā. Nevis rakstot izeja uz failu un pēc tam dzēšot failu, kad mēs esam darīts ar to, mēs varam rakstīt uz īpaša failu sauc / dev / null. Ja kaut kas ir rakstīts uz / dev/null-- vai vienkārši devnull īstermiņa - tas tiek automātiski izdzēsti. Tāpēc domāju par devnull par melno caurumu jūsu datiem. Tāpēc tagad mēs esam redzējuši, kā lielāka nekā zīme var novirzīt stdout, pieņemsim redzēt, kā mēs varam novirzīt standarts - vai s-t-d-in - analogs stdout. Kaut funkcijas patīk printf rakstīt sauc plūsma stdout, GetString un līdzīgām funkcijām lasīt no strauta sauc stdin, kas, pēc noklusējuma, ir plūsma rakstzīmes drukāti uz klaviatūras. Mēs varam novirzīt stdin izmantojot mazāk nekā zīme, kam seko ar filename. Tagad, nevis pamudinot par ieejas lietotājs At The terminālis, programma failu atvērt mēs noteikti un izmantot tās līnijas kā priekšnodokli. Paskatīsimies, kas notiek. Lieliski. Pirmajā rindā file.txt ir uzdrukāts uz terminālu jo mēs esam aicinot GetString reizi. Ja mums būtu vēl vienu zvanu uz GetString mūsu programmā, Nākamais rindā file.txt būtu izmantots kā ieeja uz šo aicinājumu. Atgādināsim, ka mēs esam ne pārveidotas mūsu C programmu vispār. Mēs esam tikai mainot to, kā mēs vadīt to. Un arī atceros, mēs esam nav novirzīts stdout šo laiku, tāpēc programmas izejas bija vēl izstādīts terminālī. Mēs varam, protams, novirzīt gan stdin un stdout kā šis. Tagad, file2.txt satur pirmo līniju file.txt. Tātad, izmantojot šo operatoru, mēs esam spējuši izlasīt un rakstīt no teksta failiem. Tagad, pieņemsim redzēt, kā mēs varam izmantot produkciju vienā programmā kā ieejas uz citu programmu. Tātad, šeit ir vēl viens vienkāršs C programmu es ir šeit sauc hello.c. Kā jūs varat redzēt, tas vienkārši izvada "Čau tur "lietotājam!. Ja es vēlos novirzīt izmantot kā ieguldījumu izlaides sveiki - cita programma - Es varētu vispirms novirzīt stdout par sveiki sauc failu input.txt, tad novirzīt stdin par novirzīt uz tajā pašā failu - input.txt. Lai es varētu darīt. / Sveiki> input.txt. Nospiediet Enter, lai izpildītu šo. Seko. / Pārorientēt < input.txt, un izpildīt to. Tātad, mēs varam saīsināt šo mazliet ar semikolu, kas ļauj mums darboties divas vai vairākas komandas uz vienas līnijas. Tāpēc es varu teikt,. / Sveiki> input.txt, semikols, . / Novirzīt Final.txt. Tātad, ja mēs atvērt final.txt, mums ir tieši tas, ko mēs bijām meklē: sarakstu unikālu nosaukumu alfabētiskā secībā, saglabāts teksta failā. Starp citu, mēs arī varētu būt teica kārtošanas < students.txt | uniq> final.txt darīt tieši pats, izmantojot katru no operatoru, mēs esam redzējuši Šis video. Mans vārds ir Tommy, un tas ir CS50.