[Powered by Google Translate] TOMMY: I denne video, vil vi lære om omdirigere og rør. Indtil videre har vi brugt funktioner som printf til udlæsning af data til terminalen og funktioner som GetString at tillade brugeren at bidrage til vores program ved hjælp af tastaturet. Lad os hurtigt tage et kig på et program, der får en linje af input fra brugeren og derefter sender det ud. På linje 7, vi spørge brugeren for en streng, og derefter på linje 8, vi udskriver det ud igen. Lad os kompilere og køre vores program. Great. Strengen vi gav blev gentaget tilbage til os på terminalen. Det skete, fordi den printf funktion skrev til en strøm kaldes standard ud, eller s-t-d-out. Når noget er skrevet til stdout, er det som standard vises af terminalen. Så det er alt sammen meget godt, men hvad nu hvis, i stedet for blot visning af strengen, vi ønskede at gemme det til en fil? For eksempel kunne vi ønsker at huske præcis, hvad vores Programmet gjorde, da vi gav det en særlig indgang senere. En metode kunne være at gøre dette i vores C-program, ved hjælp af nogle specielle funktioner til at skrive til filer, som vi får se i en anden video. Endnu lettere, men ville være en eller anden måde omdirigere stdout til en fil. På den måde når printf skriver til stdout, indholdet vil skal skrives til en fil i stedet for vises af terminalen. Vi kan gøre netop det ved at tilføje en større-end-tegn, efterfulgt af et filnavn, vi skal du bruge kommandoen til at eksekvere vores program. Så i stedet for blot at udføre. / Redirect, kan vi løbe. / omdirigere, efterfulgt af en mere end tegn, efterfulgt af filnavn, som file.txt. Lad os se hvad der sker. OK. Bemærk, at denne gang blev der ikke vises i terminalen, men vi har ikke ændret indholdet af vores C-program på alle. Lad os nu undersøge indholdet af denne mappe med ls. Ok. Vi har nu en ny fil i vores bibliotek kaldet file.txt, der er filnavnet leverede vi, da vi kørte vores Omdirigere program. Lad os åbne file.txt. Og her kan vi se, at stdout ud af omdirigering var skrevet til filen kaldet file.txt. Så lad os køre den forrige kommando igen, men leverer en forskellige input denne gang. Okay. Lad os tage et kig på file.txt nu. Vi kan se her, at filen er blevet overskrevet, så vores oprindelige input er der ikke mere. Hvis vi i stedet vil føje til denne fil, sætte nye input under de eksisterende indholdet af filen, kan vi bruge to større-end tegn i stedet for kun én. Lad os prøve det. Nu, hvis vi åbner file.txt igen, kan vi se begge vores indgangslinier. I nogle tilfælde kan vi ønsker at kassere Produktionen af ​​vores program. Snarere end at skrive output til en fil og derefter slette filen, når vi er færdige med det, kan vi skrive en speciel fil kaldet / dev / null. Når noget er skrevet til / dev/null-- eller blot devnull for short - det automatisk kasseres. Så tænk på devnull som et sort hul for dine data. Så nu har vi set, hvordan større end-tegn kan omdirigere stdout, lad os se, hvordan vi kan omdirigere standard i - eller s-t-d-i - den analoge af stdout. Mens funktioner gerne printf skrive til den kaldte strøm stdout, GetString og lignende funktioner læst fra strømmen kaldet stdin, der som standard er strømmen af tegn skrives på tastaturet. Vi kan omdirigere stdin med mindre end-tegn, efterfulgt af et filnavn. Nu, i stedet for at spørge brugeren om input på terminal, vil programmet åbne filen vi specificeret og bruge sine linjer som input. Lad os se hvad der sker. Great. Den første linje i file.txt er blevet udskrevet til terminalen fordi vi kalder GetString gang. Hvis vi havde et andet opkald til GetString i vores program, næste linje af file.txt ville være blevet anvendt som input til denne opfordring. Igen har vi ikke ændret vores C-program på alle. Vi er kun ændre, hvordan vi kører det. Og også huske, at vi ikke har omdirigeret stdout denne gang, således at udgangen af ​​programmet var stadig vises på terminalen. Man kan naturligvis omdirigere både stdin og stdout som denne. Nu file2.txt indeholder den første linje i file.txt. Så ved hjælp af disse erhvervsdrivende, har vi været i stand til at læse og skrive fra tekstfiler. Lad os nu se, hvordan vi kan bruge outputtet af et program som input til et andet program. Så her er en anden simpel C program, jeg har her kaldt hello.c. Som du kan se, er dette blot udsender "Hi der "til brugeren. Hvis jeg vil omdirigere til brug som input produktionen af ​​hello - et andet program - Jeg kunne først omdirigere stdout af goddag til en fil der hedder input.txt, så omdirigere stdin omdirigerer til samme fil - input.txt. Så jeg kan gøre. / Hej> input.txt. Tryk på Enter for at udføre dette. Efterfulgt af. / Omdirigere < input.txt, og udføre det. Så vi kan forkorte denne lidt med et semikolon, som gør det muligt os at køre to eller flere kommandoer på samme linie. Så jeg kan sige,. / Hej> input.txt, semikolon, . / Omdirigere Final.txt. Så hvis vi åbner op final.txt, har vi præcis, hvad vi var søger: en liste af unikke navne i alfabetisk rækkefølge, gemmes i en tekstfil. Af den måde, vi også kunne have sagt slags < students.txt | uniq> final.txt at gøre præcis det samme, ved hjælp af hver af de erhvervsdrivende, vi har set i denne video. Mit navn er Tommy, og dette er CS50.