Process “理解”;fork之后,任何将在exec之后继续存在的进程设置都可能会被更改";

Process “理解”;fork之后,任何将在exec之后继续存在的进程设置都可能会被更改";,process,operating-system,Process,Operating System,引自维基百科: Microsoft Windows spawn函数的灵感来自Unix函数 fork和exec;但是,由于Windows不支持fork(至少在 Win32 API;POSIX仿真环境,如Cygwin或SFU-do), spawn函数是作为fork exec的替代品提供的 组合 然而,spawn函数,尽管它充分处理了 最常见的用例缺乏fork-exec的全部功能,因为之后 fork任何将在exec之后保留的进程设置都可能会被更改。 然而,在大多数情况下,这种缺陷可以通过使用 更低级的

引自维基百科:

Microsoft Windows spawn函数的灵感来自Unix函数 fork和exec;但是,由于Windows不支持fork(至少在 Win32 API;POSIX仿真环境,如Cygwin或SFU-do), spawn函数是作为fork exec的替代品提供的 组合

然而,spawn函数,尽管它充分处理了 最常见的用例缺乏fork-exec的全部功能,因为之后 fork任何将在exec之后保留的进程设置都可能会被更改。 然而,在大多数情况下,这种缺陷可以通过使用 更低级的CreateProcess API

我想知道如何理解Windows spaw()比Unix fork exec弱的原因:“fork之后,任何能够在exec中生存的进程设置都可能被更改”

什么时候对某些进程设置进行“更改”:在fork和exec之间还是在exec之后

在子进程中,从父进程继承的环境变量是否会继续执行

有一些例子吗

谢谢和问候

fork()和exec()之间将发生“更改”。相当多的进程状态是通过exec继承的,请参阅。特别是,文件描述符是继承的(除非它们设置了close-on-exec位)

通常使用pipe()和dup()系列调用来设置管道和重定向文件描述符。例如,将子进程的标准输入和输出连接到管道,以便父进程可以与子进程通信