我正在处理一个任务,涉及编写程序来处理数据(计算pi)使用叉(进程),信号和选择。使用信号和sigpipe
我正在处理信号,我想我要做的就是使用SIGPIPE,所以如果程序捕获它,它会尝试再次写入管道(如果一个进程试图写入管道没有读者,它会发送SIGPIPE)。
我在main()中使用fork()通过将每个进程发送给worker函数来为每个进程分配相同的工作。
void worker(int id) {
.... (this piece of code is not relevant)
if(write(pfd[id][1], &c, sizeof(c)) == -1)
printf("Error occurred: %s\n",strerror(errno));
}
我如何能实现信号在该功能捕捉SIGPIPE,并把它写入管道再次?
谢谢!
你应该回去接受你提出的问题的答案。人们不可能回答你的问题,因为你不接受他们的答案。 –
哦对不起!我会去做。编辑:完成!我是新来这个网站,它是如何工作,但我现在得到它:) – andrepcg