我正在阅读 Richard Stevens“UNIX 环境中的高级编程”,我发现了这个主题。
*8.13。系统功能
*****因为system是通过调用fork、exec、waitpid来实现的,所以返回值有3种。**
1. 如果 fork 失败或 waitpid 返回 EINTR 以外的错误,系统返回 –1 并设置 errno 以指示错误。
2.如果exec失败,表示shell无法执行,返回值如同shell执行了exit(127)。
**3。否则,所有三个函数——fork、exec 和 waitpid——都成功,并且系统的返回值是 shell 的终止状态,格式为 waitpid 指定的。******
据我了解,我们通过cmdstring 名称fork()一个进程,而exec()使其与父进程分开。
但无法弄清楚waitpid() 函数如何成为system() 函数调用的一部分?
下面的链接模棱两可的构造函数调用,而对象创建没有为我提供正确的答案。