嘿,伙计们,我好像迷路了。我应该能够在无限循环中递增一个子进程中的计数,并在每次父进程发送一个信号时打印该计数,这个信号应该是每隔1秒打印一次。我写了我的代码,但我认为在使用fork之后,子进程和父进程会同时运行,但事实并非如此,所以我不确定如何解决这个问题。任何帮助都是最好的
发布于 2012-04-26 07:44:06
你所描述的在理论上应该是可行的。
如果您不熟悉并行代码的编写过程,那么编写并行代码可能会很棘手,尤其是使用fork()
。
以下是我的建议:在代码中添加一堆调试打印,例如:
int pid = fork();
if(pid == -1) {
printf("Fork failed!\n");
} else if (pid) {
printf("I'm the parent!\n");
// Do stuff
printf("Parent exiting\n");
exit(0);
} else {
printf("I'm the child!\n");
// Do stuff
printf("Child exiting\n");
exit(0);
}
然后,您可以查看您的程序是否按其应有的方式运行。
另外,将一条printf()
语句添加到您的信号处理程序中,这样您就可以确保正在调用它。
https://stackoverflow.com/questions/10328956
复制相似问题