我有一个进程(nameprocess.c
)可以制作一些东西。
我需要创建另一个进程(nameprocess-generator.c
),它继续生成进程nameprocess.c
,直到倒计时到达0
code> 或一会儿到达 0
。
我必须使用 execv
或 fork
吗?
最佳答案
两者都用。单独使用 execv() 只会替换正在运行的 与另一个进程一起处理。
首先使用fork()
。这将创建正在运行的进程的克隆。你
现在有两个进程运行相同的代码。你怎么告诉他们
分开?通过返回值。原始进程(“父进程”)得到一个
新进程 ID (pid
) 和新进程 ID (“child”) 的返回值
返回值为 0。
因此,原始进程继续执行任何操作,而新进程则调用
execv
函数之一,用不同的进程替换自身。
您可以在我的旧答案中看到一些使用 fork()
的示例代码,
here .
关于创建流程生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34692536/