[Powered by Google Translate] Tommy: V tomto videu, tak jsme se dozvěděli o přesměrování a potrubí. Zatím jsme používali funkce jako printf to výstup dat na terminálu a funguje jako GetString umožnit uživateli, aby přispěla k naší programu pomocí klávesnice. Pojďme rychle se podívat na program, který dostane řadu Vstup od uživatele, a pak výstup do. Na řádku 7, my by uživateli zobrazil výzvu pro řetězec, a pak na lince 8, jsme vytištění zpět. Pojďme kompilovat a spouštět náš program. Great. Řetězec jsme poskytli odezvu zpět nám na terminálu. To se stalo proto, že printf funkce napsala Proud tzv. standardní výstup, nebo s-t-d-ven. Když je něco napsáno na stdout, je to ve výchozím nastavení zobrazit terminálu. Tak to je všechno v pořádku a dobré, ale co když místo toho, aby prostě zobrazení řetězec, chtěli jsme jej uložit do souboru? Například, chceme vzpomenout, co přesně naše Program udělal, když jsme to zvláštní vstup později. Jedním z nich by bylo, aby to v našem programu C, za použití některé speciální funkce pro zápis do souborů, které budeme viz v jiném videu. Ještě jednodušší, když by se nějak stdout přesměrovat do souboru. Tak, když printf píše na stdout, bude obsah být zapsány do souboru, spíše než zobrazit terminálu. Můžeme dělat jen to přidáním větší-než znamení, následuje podle názvu souboru, na příkaz používáme spustit náš program. Takže, spíše než jednoduše spuštěním. / Přesměrování, můžeme spustit. / přesměrování, následovaný větší než znaménko, následuje Název souboru, jako soubor.txt. Pojďme se podívat, co se stane. OK. Všimněte si, že tentokrát, byl nic neobjeví na terminálu, ale my jsme upravili obsah naší C program vůbec. Pojďme nyní prozkoumat obsah tohoto adresáře ls. Dobrá. Nyní máme nový soubor v našem adresáři s názvem soubor.txt, což je název souboru jsme dodali, když jsme běželi OUR Přesměrování programu. Pojďme otevřít soubor.txt. A tady můžeme vidět, že stdout z přesměrování je zapsána do souboru s názvem soubor.txt. Takže pojďme spustit předchozí příkaz znovu, ale dodává jiný vstup tentokrát. Dobře. Pojďme se podívat na soubor.txt teď. Můžeme vidět, že soubor byl přepsán, tak naše Originální vstup už tam není. Pokud bychom místo toho chcete přidat do tohoto souboru, uvedení nového Vstup pod stávající obsah souboru, můžeme používat dva větší-než příznaky namísto jedné. Zkusme to. Teď, když jsme se otevřít file.txt znovu, můžeme vidět i našeho vstupní řádky. V některých případech může být chceme vyřadit všechny výstup našeho programu. Spíše než psaní výstup do souboru a pak mazání soubor, když jsme s ním udělal, můžeme napsat na zvláštní soubor s názvem / dev / null. Když je něco napsáno na / dev/null-- nebo jen devnull zkráceně - je automaticky vyřazeny. Takže myslíte, že z devnull jako černé díry pro vaše data. Takže teď jsme viděli, jak větší než znak může přesměrovat stdout, podívejme se, jak můžeme přesměrovat standard - nebo s-t-d-v - analog stdout. Zatímco funkce jako printf zapisovat do tzv. streamu stdout, GetString a podobné funkce čtení z proudu názvem stdin, který ve výchozím nastavení, je proud znaky zadané na klávesnici. Můžeme přesměrovat stdin pomocí méně než znaménko, následuje podle názvu souboru. Nyní, spíše než by uživateli zobrazil výzvu pro vstup se na terminál, bude program otevře soubor jsme specifikovali a používat jeho linky jako vstup. Pojďme se podívat, co se stane. Great. První řádek souboru soubor.txt byl vytištěn na svorce proto, že jsme volání GetString jednou. Pokud jsme měli další volání GetString v našem programu, další řádek souboru soubor.txt by byly použity jako Vstup na tuto výzvu. Opět jsme nemění náš C program vůbec. Jsme jen změnou, jak jsme jej spustit. A také nezapomeňte, jsme se přesměrování stdout tentokrát, takže výstup programu byl ještě zobrazí na terminálu. Můžeme, samozřejmě, přesměrování oba stdin a stdout takhle. Nyní, file2.txt obsahuje první řádek souboru soubor.txt. Takže pomocí těchto operátorů, jsme byli schopni číst a zápis z textových souborů. Nyní se podívejme, jak můžeme využít výstup z jednoho programu vstup do jiného programu. Tak tady je další jednoduchý C program, který jsem se zde nazývá hello.c. Jak můžete vidět, to prostě výstupy "Hi tam! "pro uživatele. Pokud chci přesměrovat použít jako vstup výstup ahoj - jiný program - Mohl bych první přesměrování stdout z hello to s názvem souboru input.txt, pak přesměrujte stdin o přesměrování na ten stejný Soubor - input.txt. Tak jsem si to. / Hello> input.txt. Stiskněte Enter pro provedení tohoto. Následoval. / Redirect < input.txt, a spustit to. Takže můžeme zkrátit tento bit středníkem, který umožňuje nás provozovat dva či více příkazy na stejném řádku. Takže můžu říct,. / Hello> input.txt, středník, . / Redirect Final.txt. Takže, pokud bychom otevřít final.txt, máme přesně to, co jsme byli Hledám: seznam jedinečných jmen v abecedním pořadí, uložit do textového souboru. Mimochodem, jsme také mohl říci, sort < students.txt | uniq> final.txt dělat přesně to, totéž, použití každé z operátorů jsme viděli v toto video. Mé jméno je Tommy, a to je CS50.