[Powered by Google Translate] Tommy: F'dan il-video, aħna ser jitgħallmu dwar
ridirezzjonar u pajpijiet.
S'issa, aħna kont qed tuża l-funzjonijiet simili printf li
output data lill-terminal u l-funzjonijiet simili GetString
li jippermetti lill-utent biex jipprovdi kontribut lill tagħna
Programm użu tal-keyboard.
Ejja malajr tagħti ħarsa lejn programm li gets linja ta '
input mill-utent u mbagħad outputs tiegħu.
>> Fuq il-linja 7, aħna qed wassal lill-utent għal string, u
imbagħad fuq il-linja 8, aħna qed istampar lura out.
Ejja tiġbor u tmexxi programm tagħna.
Great.
L-sekwenza we pprovduti ġie mtenni lura
lilna fit-terminal.
Dan ġara minħabba l-funzjoni printf kiteb lil
nixxiegħa jissej standard, jew s-t-d-out.
Meta xi ħaġa huwa miktub biex stdout, huwa fil-kontumaċja
murija mit-terminal.
>> Allura li kollox sew u tajjeb, imma dak jekk, minflok sempliċiment
juri l-sekwenza, ridna li tiffranka lill fajl?
Per eżempju, aħna tista 'tixtieq li tiftakar eżattament dak tagħna
Programm għamlet meta aħna tatha 'dħul partikolari tard.
Approċċ wieħed ikun li tagħmel dan fil-programm C tagħna, bl-użu
xi funzjonijiet speċjali għall-kitba għall-fajls li aħna ser
tara ieħor video.
Anki faċli, għalkemm, ikun li b'xi mod
idawwru stdout għal fajl.
B'dan il-mod, meta printf jikteb lill stdout, il-kontenut se
tkun bil-miktub għall-fajl minflok
murija mit-terminal.
Nistgħu tagħmel dan billi żżid sinjal akbar minn dak, segwita
minn isem ta 'fajl, il-kmand nużaw biex tesegwixxi programm tagħna.
>> Allura, aktar milli sempliċement jeżegwixxi. / Idawwru, nistgħu
run. / idawwru, segwita minn aktar minn sinjal, segwita minn
isem tal-file, bħall file.txt.
Ejja naraw x'jiġri.
OK.
Avviż li din id-darba, xejn kien murija fit-terminal,
iżda aħna ma mmodifikawx-kontenut ta 'tagħna
Programm C fil-livelli kollha.
Ejja issa teżamina l-kontenut ta 'dan id-direttorju ma' ls.
>> Kull dritt.
Issa għandna fajl ġdid fl-direttorju tagħna imsejħa file.txt,
li huwa l-isem ta 'fajl aħna fornuti meta aħna dam tagħna
Direzzjoni ġdida program.
Ejja jiftħu file.txt.
U hawn, nistgħu naraw li l-stdout minn idawwru kien
bil-miktub lill-fajl imsejjaħ file.txt.
Mela ejja imexxu l-kmand preċedenti mill-ġdid, iżda jfornu
input differenti dan iż-żmien.
Okay.
Ejja tagħti ħarsa lejn file.txt issa.
>> Nistgħu naraw hawn li l-fajl kien miktub fuq ieħor, hekk tagħna
input oriġinali ma jkunx hemm aktar.
Jekk aħna minflok trid tehmeż dan il-fajl, it-tqegħid l-ġdid
input taħt il-kontenut eżistenti tal-fajl, nistgħu
jużaw żewġ ikbar minn sinjali 'minflok waħda biss.
Ejja nippruvaw dan.
Issa, jekk aħna miftuħa file.txt darb'oħra, nistgħu naraw kemm ta 'tagħna
input linji.
F'xi każijiet, aħna tista 'tixtieq li jarmi xi
produzzjoni tal-programm tagħna.
Pjuttost milli bil-miktub l-output għall-fajl u imbagħad tħassar
il-fajl meta aħna qed isir ma 'dan, nistgħu jiktbu lill speëjali
fajl imsejjaħ / DEV / null.
Meta xi ħaġa huwa miktub lil / dev/null--
jew biss devnull-qasir -
huwa awtomatikament tintrema.
Allura taħseb devnull bħala toqba sewda għall-informazzjoni tiegħek.
>> Allura issa Rajna kif il-sinjal akbar milli jista idawwru
stdout, ejja ara kif nistgħu idawwru standard -
jew s-t-d-in -
l-analogu ta 'stdout.
Filwaqt li l-funzjonijiet simili printf jikteb lill-nixxiegħa imsejħa
, stdout GetString u funzjonijiet simili aqra mill-fluss
imsejħa stdin, li, awtomatikament, hija l-fluss ta '
karattri ttajpjati fuq il-keyboard.
Nistgħu idawwru stdin bl-użu inqas minn sinjal, segwita
minn isem tal-file.
Issa, minflok wassal lill-utent għall-input fil-
terminal, programm se tiftaħ il-fajl aħna speċifikati u l-użu
Linji tagħha bħala input.
>> Ejja naraw x'jiġri.
Great.
L-ewwel linja ta 'file.txt ġiet stampata għat-terminal
għaliex aħna qed titlob GetString darba.
Jekk kellna sejħa oħra għall GetString fil-programm tagħna, il-
linja li jmiss ta 'file.txt kienu użati bħala
kontribut għal dik is-sejħa.
Għal darb'oħra, aħna ma mmodifikawx programm C tagħna fil-livelli kollha.
Aħna biss tinbidel kif aħna run.
U wkoll ftakar, aħna ma dirottati stdout dan iż-żmien,
hekk l-output tal-programm kien għadu
murija fit-terminal.
Nistgħu, naturalment, idawwru kemm stdin
u stdout bħal dan.
Issa, file2.txt fiha l-ewwel linja ta 'file.txt.
>> Allura, jużaw dawn l-operaturi, aħna kont qed kapaċi li jaqra u
tikteb mill-fajls test.
Issa, ejja ara kif nistgħu nużaw l-output ta 'programm wieħed kif
l-input għal programm ieħor.
Allura hawnhekk programm ieħor C sempliċi I
jkunu hawn imsejħa hello.c.
Kif tistgħu taraw, dan sempliċement outputs "Hi
hemm! "għall-utent.
Jekk irrid idawwru għall-użu bħala input-output ta bonjour -
programm ieħor -
I jistgħu idawru l-1 stdout ta bonjour għal fajl imsejjaħ
input.txt, mbagħad jagħtu direzzjoni ġdida l-stdin ta idawwru għal dak istess
fajl -. input.txt
So I tista 'tagħmel. / Bonjour> input.txt.
Agħfas Ikteb li jesegwixxi din.
Segwit minn. / Idawwru <
input.txt, u tesegwixxi dik.
Allura aħna jista 'jqassar dan daqsxejn bil-punto virgola, li tippermetti
us jiddekorri tnejn jew aktar jikkmanda fuq l-istess linja.
Allura nista 'ngħid,. / Bonjour> input.txt, virgola,
. / Idawwru <input.txt.
>> Allura dan jaħdem, iżda għadu jħoss pjuttost inelegant.
I mean, aħna verament bżonn dan il-fajl test intermedjarju li l-
m'għadx hemm bżonn wara idawwru runs?
Fortunatament, nistgħu jevitaw dan il-fajl test żejjed bl-użu x'hemm
imsejħa pajp.
Jekk I say, / bonjour |.. / Idawwru, allura l-stdout ta
il-programm fuq ix-xellug -
f'dan il-każ, bonjour -
se jintużaw bħala l-input standard għall-
programm fuq il-lemin.
F'dan il-każ, idawwru. Mela ejja run dan.
>> Hemm immorru.
Nistgħu naraw li l-output ta 'bonjour kien użat bħala l-input
għal direzzjoni ġdida.
Billi stringing jikkmanda flimkien bl-użu pajpijiet, aħna jiffurmaw x'hemm
imsejħa pipeline, peress produzzjoni tagħna hija bażikament jitneħħew
permezz ta 'sekwenza ta' kmandi.
Bl-użu pajpijiet, nistgħu nagħmlu xi għalf jibred mingħajr il-bżonn li
jikteb xi kodiċi fil-livelli kollha.
Per eżempju, ejja ngħidu li rridu nkunu nafu kemm fajls huma
ġewwa ta 'dan id-direttorju.
Permezz ta 'pajp, nistgħu jgħaqqdu l-kmand ls mal-WC -
jew wordcount -
kmand.
Ls se output kull fajl fil-direttorju li stdout, u
wc se jgħidulna kemm linji ngħataw lilha permezz stdin.
Għalhekk, jekk irridu ngħidu ls | wc-l -
jfornu l-bandiera l għal wc li tgħid li jgħodd linji -
nistgħu naraw eżattament kemm fajls huma
fid-direttorju kurrenti.
>> Mela ejja tagħti ħarsa lejn eżempju wieħed aktar.
Għandi hawnhekk l-inkartament imsejjaħ students.txt,
ma 'lista ta' ismijiet.
Madankollu, dawn l-ismijiet ma jkunux fi kwalunkwe ordni dan kollu, u jidher
bħal ftit ismijiet huma ripetuti.
Dak li rridu hija lista ta 'ismijiet uniċi fil alfabetika
ordni, ffrankati l-fajl imsejjaħ final.txt.
Nistgħu, naturalment, jikteb programm C biex jagħmlu dan għalina.
Iżda li għaddej biex tikseb bla bżonn
kumpless pretty malajr.
Ejja minflok jużaw pajpijiet u xi mibnija fil-għodod biex isolvu
din il-problema.
>> L-ewwel ħaġa li għandna bżonn tagħmel hu li jaqra l-students.txt fajl.
Il-kmand qattus se tagħmel dan.
Hija ser jinqara fil-fajl speċifikat u jiktbu
kontenuti tiegħu mal stdout.
Wara konna jaqra l-fajl test, aħna ser
tixtieq li sort l-ismijiet.
Il-kmand tip jistgħu jimmaniġġjaw dan għalina.
Sort se output-linja fornita permezz stdin li stdout
sabiex magħżula.
Sabiex jipprovdu l-kontenut ta 'students.txt lil
stdin sort, aħna jistgħu jużaw pajp li jgħaqqad qtates u tip.
So I tista 'tesegwixxi qattus students.txt | sort u
istampa Ikteb.
U issa, naraw il-kontenut ta students.txt fil
alfabetiku ordni.
>> Mela ejja żid ieħor kmand -
uniq, jew uniku -
għall pipeline tagħna.
Kif inti tista raden, uniq, meta fornuti sekwenza magħżula ta '
Linji permezz stdin, se output-linji uniċi.
Allura issa għandna students.txt qattus
| Sort | uniq.
Fl-aħħarnett, aħna jista 'jiffranka l-output tal-pipeline lejn
fajl permezz qattus students.txt | sort | uniq
> Final.txt.
Għalhekk, jekk irridu jiftħu final.txt, għandna eżattament dak li konna
tfittex:
lista ta 'ismijiet uniku fl-ordni alfabetika,
ffrankati l-fajl test.
Mill-mod, aħna wkoll jista 'jkollhom qal sort <
students.txt | uniq> final.txt tagħmel eżattament
l-istess ħaġa, bl-użu kull wieħed mill-operaturi aħna stajt tidher fil
dan il-video.
>> Jisimni Tommy, u dan huwa CS50.