考慮以下幾點:創建叉()和exec(管後)
- 的小孩
- 子父進程使用exec系統調用
- 家長和孩子通過雙向通信運行另一個程序-directional管(在休息命名MAINPIPE)
- 孩子的服務器端口的綁定(如5000)
我的程序將正常運行FO llows:
如果孩子從客戶端收到某個消息,則向他的父母創建另一個雙向管道併發送/接收一些信息。
的問題是:
當我在孩子(使用pipe()
)創建管道並通過文件描述符到父(使用MAINPIPE),試圖讀取時,家長被「錯誤的文件描述符」錯誤信息從管道。
有什麼想法嗎?
編輯:
傢伙,
我的問題不是通過新管道的文件desciptors - 也就是說在孩子創造過程 - 母公司, 我已經做了,使用MAINPIPE,
但問題是:父母無法從新管道讀取,得到此錯誤消息「壞文件描述符」 似乎在父進程中關閉文件描述符!
正如我所說的我的孩子的過程是一個服務器,如果收到某些消息,那麼它應該創建另一個管他的父母 – user1711001
改變你的工作流程。在分叉之前創建管道,並且僅在收到消息時發送數據。 –
我不知道有多少客戶端連接到服務器,服務器必須有一個管道爲每個客戶端 – user1711001