我正在编写一个C程序,其中父进程为n子进程。一旦创建的子进程调用一个SIGSTOP来允许创建其他子进程。创建所有子进程后,父进程向所有子进程发送一个SIGCONT信号。在Ctrl-C上终止父进程和子进程
所有子进程执行无限循环并使用信号量共享公共资源。现在我希望每当用户按下ctrl-c时,父级和所有子级进程一起终止。但是,在终止子进程之前,应该在文件中更新每个进程使用该资源的次数。
如:
Process 1 - 5 times
Process 2 - 3 times
等。
在此实现,请需要帮助...
你有什么?你需要哪些部分帮助?您将需要SIGINT的信号处理程序(但可能不需要SIGCONT)。因此你应该看看'sigaction()'。我猜你已经有信号量代码了? – 2012-01-13 18:23:05
重复? http://stackoverflow.com/questions/284325/how-to-make-child-process-die-after-parent-exits包含一个很好的答案。 – ugoren 2012-01-13 19:34:03
@JonathanLeffler信号量部分对我来说工作得很好。我坚持的是,在按ctrl-c退出子进程的部分应该首先在文件中更新每次使用资源的次数。此后,孩子和父母一个接一个终止。 – ritz 2012-01-13 19:54:45