成功execlp()电话后,您之前程序中的任何代码都不会再次运行。进程的内存空间被新进程覆盖。
如果您仍需要对孩子进行管理,那么在致电fork()之前,您需要致电execlp()。这将为您提供两个流程,然后您可以在两者之间进行一些沟通。
exec*()
函数替换使用作为参数提供的可执行文件调用它们的进程。
这意味着,如果execlp
呼叫成功,则进行呼叫的子节点不再存在。因此,printf
之后的任何execlp
语句只能在execlp
调用失败时执行,这通常意味着所请求的程序不存在。
“exec()系列函数用新的过程映像”
替换当前过程映像
(来自:http://linux.die.net/man/3/execlp)
这很清楚地解释了它。