fork + exec模式可以被系统替换(run-command-in-background)?

Tom*_*ito 2 c unix

如果fork和exec模式仅用于运行程序而不冻结当前程序,那么有什么好处,例如,使用这一行:

system("program &"); // run in background, don't freeze
Run Code Online (Sandbox Code Playgroud)

Som*_*ude 5

system函数创建一个用于运行程序的新shell实例,这就是您可以在后台运行它的原因.与fork/ 的主要区别exec在于,使用system这样的实际上会创建两个进程,即shell和程序,并且您无法通过匿名管道直接与新程序通信.

  • 实际上,为了更强烈地阻止`system()`,请注意`fork/exec`创建*完全*一个新进程.`system`创建*至少*两个新进程,但是根据shell启动文件中的内容,它可以创建许多,更多.... (4认同)