3 回答

TA貢獻(xiàn)1821條經(jīng)驗(yàn) 獲得超5個(gè)贊
Unix中的每個(gè)標(biāo)準(zhǔn)進(jìn)程至少有三個(gè)文件描述符,它們有點(diǎn)像接口:
標(biāo)準(zhǔn)輸出,即進(jìn)程打印其數(shù)據(jù)的位置(大多數(shù)情況下是控制臺(tái),即屏幕或終端)。
標(biāo)準(zhǔn)輸入,它是從中獲取數(shù)據(jù)的地方(大多數(shù)情況下它可能類似于鍵盤)。
標(biāo)準(zhǔn)錯(cuò)誤,這是錯(cuò)誤和有時(shí)其他帶外數(shù)據(jù)發(fā)生的地方。它現(xiàn)在沒(méi)有意思,因?yàn)楣艿劳ǔ2惶幚硭?/p>
管道將過(guò)程的標(biāo)準(zhǔn)輸出連接到左側(cè)的過(guò)程的標(biāo)準(zhǔn)輸入。您可以將其視為一個(gè)專用程序,負(fù)責(zé)復(fù)制一個(gè)程序打印的所有內(nèi)容,并將其提供給下一個(gè)程序(管道符號(hào)后面的程序)。這不是那個(gè),但它足夠類比。
每個(gè)管道只運(yùn)行兩件事:標(biāo)準(zhǔn)輸出來(lái)自其左側(cè),輸入流預(yù)期位于其右側(cè)。其中每個(gè)都可以附加到單個(gè)進(jìn)程或管道的另一個(gè)位,這是多管道命令行中的情況。但這與管道的實(shí)際操作無(wú)關(guān); 每個(gè)管道都有自己的。
重定向operator(>
)執(zhí)行相關(guān)操作,但更簡(jiǎn)單:默認(rèn)情況下,它將進(jìn)程的標(biāo)準(zhǔn)輸出直接發(fā)送到文件。正如你所看到的那樣,它不是管道的反面,而是實(shí)際上是互補(bǔ)的。>
不足為奇的是<
,它獲取文件的內(nèi)容并將其發(fā)送到進(jìn)程的標(biāo)準(zhǔn)輸入(將其視為一個(gè)逐字節(jié)讀取文件并在進(jìn)程中為您鍵入文件的程序)。
添加回答
舉報(bào)