【发布时间】:2011-12-08 03:25:10
【问题描述】:
我正在处理一项任务,其中涉及编写程序以使用 fork(进程)、信号和选择来处理数据(计算 pi)。
我现在正在处理信号,我想我想做的是使用 SIGPIPE,所以如果程序捕获它,它会尝试再次写入管道(如果进程尝试写入管道没有阅读器,它将被发送 SIGPIPE)。
我在 main() 中使用 fork() 通过将每个进程发送到工作函数来分配相同的工作。
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 并使其再次写入管道?
谢谢!
【问题讨论】:
-
您应该返回并接受您提出的问题的答案。人们不太可能回答你的问题,因为你不接受他们的答案。
-
哦,对不起!我会去做。编辑:完成!我是这个网站的新手,它是如何工作的,但我现在明白了 :)
标签: c process pipe signals sigpipe