我有一個父進程,它有兩個子進程fork掉。我創建了兩個管道(每個孩子一個)。對於每個管道,我已經關閉了父節點的寫入結束和子節點的讀取結束。C - 從兩個管道(兩個子進程的父節點)同時讀取?
我遇到的問題是讓父母同時從每個子管道讀取。它似乎只是從我嘗試讀取的第一個管道讀取。
//PARENT
while(1)
{
read(fd[0], buffer, sizeof(buffer));
//print out buffer
read(fd2[0], buffer2, sizeof(buffer2));
//print out buffer2
}
打印的唯一信息是來自我第一次讀取的電話的信息。我認爲閱讀似乎阻止了其他閱讀。我在網上查找並找到了一個可能的解決方案,但無法弄清楚如何使用管道來實現它(似乎沒有任何地方的例子)。
有人可以解釋如何選擇與管道工作或通知我的任何其他可能的解決方案,我的問題?
請閱讀您的系統文檔以選擇。 ('人選')。許多精選的手冊頁都有很多實例。 –
你的大綱代碼將同步閱讀來自一個孩子和另一個孩子的消息。我相信'buffer2'與'buffer'的大小是一樣的,因爲你也使用'buffer'的大小來進行第二次讀取。 –