你好我在Linux中有两个进程说P1& P2和两者都是独立的可执行文件 在过程中" P1"我正在使用" system()"运行过程的功能" P2"。 流程" P2"运行6秒钟,然后调用"退出()" API(它自杀)。
我想知道如何获得流程" P2"在流程" P1"?
中终止通知答案 0 :(得分:1)
当P2执行时,P1将在system()中被阻止。 P2的终止将解除阻塞P1。 P1获取P2的退出代码作为系统的返回值。
答案 1 :(得分:0)
你做错了。
是的,运行system(),而不是在如此创建的进程上使用kill进行轮询,但是正确的事情是使用fork()和exec()从P1创建P2,这将使P1成为P2的父进程 - 这意味着当P2退出时,您将收到SIGCHLD信号。
答案 2 :(得分:0)
我想知道如何在进程“P1”中获取进程“P2”终止通知?
P1
会在P2
执行时锁定。
我建议您使用P1中的fork()
和exec()
。这将使P1
成为P2
的主要流程。当P2
完成执行后,它将解锁P1
传递返回值。
答案 3 :(得分:-1)
这很简单 我刚刚发现“ int kill(pid_t pid,int signum)”将起作用。
此功能的详细信息可在以下位置找到 - http://www.gnu.org/software/libc/manual/html_node/Signaling-Another-Process.html