该
vfork()
函数与 具有相同的效果fork(2)
,除了如果进程 [...] 在成功调用 [...]exec(3)
函数族之一之前调用任何其他函数,则行为未定义。
这表明exec*()
之后调用任何函数vfork()
都是可以接受的。但是,稍后在手册页中具体说明:
特别是,程序员不能依赖父级保持阻塞,直到子级 [...] 调用
execve(2)
[...]。
execve(2)
在手册页中重复使用,它的用法表明它是唯一exec
可以在vfork()
.
那么为什么execve
在这里被挑出来,我可以安全地调用其他exec
类型的函数(如execlp
)吗?