2
我在使用管道的程序中遇到問題。寫入管道死鎖程序
什麼我做的是使用管道叉/ EXEC一起將數據發送到另一個進程
什麼我已經是這樣的:
//pipes are created up here if(fork() == 0) //child process { ... execlp(...); } else { ... fprintf(stderr, "Writing to pipe now\n"); write(pipe, buffer, BUFFER_SIZE); fprintf(stderr, "Wrote to pipe!"); ... }
這適用於大多數的消息,但是當該消息非常大,寫入管道死鎖。
我認爲管道可能已滿,但我不知道如何清除它。我嘗試使用fsync但沒有奏效。
任何人都可以幫助我嗎?
這個問題解決了,謝謝,直到寫完之後我才關閉管道 – avs3323 2010-05-12 01:34:11