我正在C中运行子进程,我想暂停然后运行相同的子进程。由于我是新手,所以不太确定如何更好地描述我的问题,但这里有一个镜头。在C中运行/暂停子进程?
因此,我知道您可以在另一个进程退出后使用waitpid
运行进程。但是,如果我在等待的过程的创建过程中不存在我等待的过程。所以在这种情况下,我正在考虑暂停执行等待的流程,等待的流程创建完成并完成后,它会调用等待再次运行的流程。那么你会如何做到这一点?再一次,我对此并不熟悉,所以我不知道这是否是正确的方法。
编辑:我试图
我用的子进程通过execvp()
并行运行的命令,所以如果我有一个序列sleep 1; sleep 1;
做,总睡眠时间为1秒。然而,有些情况下我试图平行echo blah > file; cat < file;
,在这种情况下,我假设cat
在echo
向文件输入blah后读取文件。因此,我必须等待echo
才能完成cat
。这里有更多的细节,但通常假设任何带有输出到文件的命令都必须由稍后在脚本中读取文件的任何命令来等待。
你的外在问题是什么?为什么你甚至需要一个等待的过程? – 2012-02-03 20:35:08
当你调用fork()时你得到PID;如果您还没有看到Beej指南,我会建议您这样做:http://beej.us/guide/bgipc/output/html/multipage/fork.html如果您需要知道孩子何时完成,那么您需要某种类型的IPC。 – EdH 2012-02-03 20:36:36
这是操作系统相关的,它不是标准C的一部分,所以你需要对你写的东西更具体些。我假设*尼克斯。 – 2012-02-03 20:36:52