我有一個在兩個進程之間創建管道的程序。一個進程持續監視另一個進程的輸出,當遇到特定輸出時,它會通過其他管道輸入write()
函數。我遇到的問題是,雖然管道的內容沒有通過其他進程的stdin流,直到我管道close()
。我希望這個程序無限循環,並在每次遇到它正在尋找的輸出時作出反應。有沒有辦法在不關閉管道的情況下將輸入發送到其他進程?在C/C++中我想多次寫入同一個管道
我已經搜索了一下,發現命名管道可以在關閉它們後重新打開,但我想知道是否有另一個選項,因爲我已經編寫了使用未命名管道的代碼,但我還沒有學會使用命名管道。
第一個過程如何寫入管道?如果它使用'fprintf()'等,那麼其輸出可能被緩衝。對'fflush()'的調用應該會通過數據。 – 2011-03-14 19:00:41
它正在通過一條類似'write(pipe [1],string,strlen(string));'的線寫入管道。 'fflush()'看起來很有希望,我會試試看。 – Alex 2011-03-14 19:17:22