我正在用 C 编写一个简单的程序,它使用 exec
函数打开互联网浏览器。但是,直到我关闭互联网浏览器后,该程序才会终止。
编写该程序的最佳方式是什么,以便它打开互联网浏览器然后结束?
最佳答案
当您使用exec
时,您的整个进程将被新进程的镜像替换,并且当前进程将不复存在。相反,先fork
一个新进程(如果需要然后然后 setsid
将其与其父进程分离)exec
新的进程镜像。 fork 的进程将被新的进程镜像替换,并且父进程将保持事件状态。如果您想让父进程保持打开状态直到子进程退出,请查看 waitpid
。
编辑:供将来引用,是的,setsid
不可移植,并且 fork
周围的语义差异很大。即使主机操作系统不明确支持 POSIX,生成并执行模型仍然以某种方式存在于几乎每个 POSIX 和非 POSIX 平台上。
关于c - 如何在 C 中创建一个在父进程死亡后运行的进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8860029/