[Powered by Google Translate] TOMMY: Tässä videossa me oppia suuntaamaan ja putket. Toistaiseksi olemme käyttäneet toiminnot kuten printf ja lähtödata päätelaitteelle ja toimintoja, kuten GetString jotta käyttäjä voi antaa panoksensa meidän Ohjelma näppäimistöllä. Katsotaanpa nopeasti katsomaan ohjelmaa, joka saa linja sisäänsyöte käyttäjältä ja syöttää sitten sen. Rivillä 7, olemme kehotukset käyttäjältä merkkijonon, ja Sitten rivillä 8, me tulostaa sen takaisin ulos. Katsotaanpa kääntää ja ajaa meidän ohjelmaa. Suuri. Merkkijono annoimme yhtyivät takaisin meille terminaaliin. Tämä tapahtui siksi printf funktion kirjoitti stream kutsutaan standardi ulos, tai s-t-d-out. Kun jotain on kirjoitettu stdout, se on oletusarvoisesti näytetään päätelaitteen. Niin, että ihan hyvä, mutta mitä jos sen sijaan, että yksinkertaisesti näyttää merkkijonon, halusimme tallentaa sen tiedoston? Esimerkiksi meidän kannattaa muistaa, mitä meidän Ohjelma teki, kun annoimme sen tietty tulo myöhemmin. Yksi tapa olisi tehdä tätä meidän C-ohjelma, käyttäen joitakin erityisiä toimintoja kirjallisesti tiedostoja että me nähdä toinen video. Vieläkin helpompaa, vaikka olisi jotenkin redirect stdout tiedostoon. Tällä tavoin, kun printf kirjoittaa stdout, sisältö voidaan kirjoittaa tiedostoon sijaan näytetään päätelaitteen. Voimme tehdä juuri niin lisäämällä suurempi kuin-merkki, jonka jälkeen jonka tiedostonimen, jotta komento käytämme toteuttaa ohjelmaamme. Niin, eikä vain täytäntöönpanovaltiossa. / Redirect, voimme suorittaa. / uudelleenohjaus, jonka jälkeen on suurempi kuin merkki, jota seuraa tiedostonimi, kuten tiedosto.txt. Katsotaan mitä tapahtuu. OK. Huomaa, että tällä kertaa, mitään ei näy päätteellä, mutta emme ole muuttaneet sisältöä meidän C ohjelmaa lainkaan. Katsotaanpa nyt tutkia tämän hakemiston sisällöstä ls. Selvä. Meillä on nyt uusi tiedosto meidän hakemistoon nimeltä tiedosto.txt, joka on tiedoston nimi toimitimme kun juoksi meidän Redirect ohjelma. Katsotaanpa avata tiedosto.txt. Ja täällä, voimme nähdä, että stdout pois redirect oli kirjoitetaan tiedostoon nimeltä tiedosto.txt. Joten suorita edellisen komennon uudestaan, mutta toimittaa Eri tulo tällä kertaa. Okei. Katsotaanpa katsomaan tiedosto.txt nyt. Voimme nähdä tässä, että tiedosto on korvattu, joten meidän alkuperäinen panos ei ole enää. Jos sen sijaan haluat liittää tähän tiedostoon, asettaa uusi tulo alapuolella olevia tiedoston sisältö, voimme käyttää kahta suurempi kuin-merkkejä yhden sijasta. Kokeillaan sitä. Nyt, jos avaamme tiedosto.txt uudelleen, voimme nähdä meidän kummankin syöterivit. Joissakin tapauksissa saatamme haluta hylätä mitään lähtö ohjelmamme. Kirjoittamisen sijasta tuloste tiedostoon ja poistamalla tiedoston, kun olemme tehneet sen, voimme kirjoittaa erityiseen tiedosto nimeltä / dev / null. Kun jotain on kirjoitettu / dev/null-- tai vain devnull lyhyitä - se hylätään automaattisesti. Joten ajattele devnull kuin musta aukko tietosi. Joten nyt olemme nähneet, kuinka suurempi kuin-merkki voidaan ohjata stdout, katsotaanpa miten voimme ohjata standardi - tai s-t-d-in - analogi stdout. Vaikka toimintoja, kuten printf kirjoittaa stream kutsutaan stdout, GetString ja vastaavat toiminnot luetaan virrasta nimeltään stdin, joka oletusarvoisesti on virta merkkiä näppäimistöllä kirjoitettu. Voimme suunnata stdin käyttämällä vähemmän kuin merkki, jota seuraa jonka tiedostonimi. Nyt sen sijaan kehotetaan käyttäjää tuloon terminaali, ohjelma avaa tiedoston me määritetty ja käyttää sen linjat syötteenä. Katsotaan mitä tapahtuu. Suuri. Ensimmäinen rivi tiedosto.txt on tulostettu päätelaitteelle koska olemme soittamalla GetString kerran. Jos meillä oli toinen puhelu GetString meidän ohjelmaan, seuraavalle riville tiedosto.txt olisi käytetty tulo että puhelun. Jälleen, emme ole muutettu meidän C-ohjelmaan lainkaan. Olemme vain muuttamalla miten käyttää sitä. Ja myös muistaa, ettemme ole ohjata stdout tällä kertaa, niin lähtö ohjelma oli yhä näytetään pääte. Voimme tietenkin ohjata sekä stdin ja stdout näin. Nyt, file2.txt sisältää ensimmäisen rivin tiedosto.txt. Joten, käyttää näitä operaattoreita, olemme voineet lukea ja kirjoittaa tekstitiedostoja. Nyt, katsotaanpa miten voimme käyttää tuotos yhden ohjelman tulo toiseen ohjelmaan. Joten tässä on toinen yksinkertainen C-ohjelma I ovat tässä kutsutaan hello.c. Kuten näette, tämä yksinkertaisesti lähdöt "Hi siellä! "käyttäjälle. Jos haluan ohjata käyttää syötteenä lähtö Hello - toinen ohjelma - En voisi ensin suunnata stdout Hello tiedostoon nimeltä input.txt, ohjaa sitten stdin on uudelleenohjaus saman tiedosto - input.txt. Joten en voi tehdä. / Hello> input.txt. Paina Enter suorittamaan tätä. Seuraaja. / Redirect < input.txt ja suorittamiseen. Joten voimme lyhentää tätä hieman toisistaan ​​puolipisteellä, joka mahdollistaa meitä kahta tai useampaa komentoja samalla linjalla. Voin siis sanoa,. / Hei> input.txt, puolipiste, . / Redirect Final.txt. Joten, jos me avata final.txt, meillä on mitä me olimme etsivät: luettelon ainutlaatuisia aakkosjärjestyksessä, tallennetaan tekstitiedostoon. Muuten olemme myös voineet sanoa sort < students.txt | Uniq> final.txt tehdä täsmälleen sama asia, käyttäen kunkin toimijoiden olemme nähneet tämän videon. Nimeni on Tommy, ja tämä on CS50.