我有一個代碼創建兩個管道,用於寫入和讀取調用另一個程序的2(至4)個子進程的數據。這個程序的代碼只是兩個printf
,一個打印-
和另一個打印Done
都連接到stdout
連接到父進程的讀取管道。 在父過程中,我閱讀使用從子進程逐個讀取數據
read(pipes[i][1][0], buffer, sizeof(buffer)-1);
數據的問題是,如果我設置的buffer
大小爲4(比如說)read()
調用讀取-Do
這不是我想要的,因爲我會之後再次致電read()
。 如果大小爲2,則一切正常,因爲我知道要讀取的內容的大小,但在其他代碼中,我沒有這些信息。
我試過fflush(stdout)
關於子進程每個printf()
但它不起作用。我認爲這很容易解決,但我無法弄清楚,有沒有辦法逐一閱讀由子進程生成的相片?
通過使用換行符,你的意思是我必須通過字符來讀取char,並在發現''\ n''時停止? – 2014-09-23 11:27:59
那麼,你可以使用'fgets'或類似的東西。 – Useless 2014-09-23 12:03:54
好的,我會使用該解決方案。謝謝。 – 2014-09-23 12:25:13