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