0
我很困惑linux可以讓應用程序從管道讀取,例如「cat/etc/hosts | grep'localhost'」。我知道在一個獨立的程序中分叉一個孩子,並通過管道相互溝通。但是對於兩個獨立的管道溝通方案,我不知道如何。 例如「cat/etc/hosts | grep'localhost'」Grep如何知道應該讀取哪個文件描述符才能從「cat/etc/hosts」中獲取輸入。有沒有一個由操作系統提供的「傳統」管道,讓Grep知道從哪裏得到輸入?我想知道這背後的機制。linux如何讓應用程序從管道讀取
這裏重要的一點是,在給出的例子中,'cat'和'grep'都是shell的子進程,所以它們*是*相關的。 – caf 2010-11-16 03:45:51
它是'pipe(2)',而不是'mkfifo(3)',因爲管道是未命名的。 – 2010-11-18 23:53:30
@羅曼:對,謝謝。 – 2010-11-18 23:54:48