[問題] FIFO bwtween 2 child processes
因為有需要fork 多個child processes後
能夠讓他們彼此溝通, 所以想練習使用FIFO(named pipe)
目標是 先fork一個child_1寫入後(child_1結束)
再fork另一個child_2去讀取 印出FIFO中的資料
可是我發現在child_1寫入的時候, 他好像一定要有reader,否則會block住
如果在寫入的時候設成nonblocking 就會出現No such device or address的錯誤
後來我試了在child_1開一個fd當讀取端 這樣不會被block
可是child_2也讀不到東西..
最後還是必須讓child_2先sleep一下 等child_1去卡在open O_WRONLY
等child_2去做open O_RDONLY後, 才能順利讓child_1寫入,讓child_2讀到資料
以下連結是我的code:
http://pastie.org/5402251
想問一下有沒有可以讓child_1先順利寫進FIFO, exit後
又能讓child_2讀到資料的方法?
謝謝! > <
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.208.23
※ 編輯: MiracleShot 來自: 140.113.208.23 (11/20 02:12)
→
11/20 02:34, , 1F
11/20 02:34, 1F
推
11/20 20:17, , 2F
11/20 20:17, 2F
→
11/20 20:17, , 3F
11/20 20:17, 3F
→
11/21 02:05, , 4F
11/21 02:05, 4F
→
11/21 17:19, , 5F
11/21 17:19, 5F
推
11/27 21:49, , 6F
11/27 21:49, 6F
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章