我编写了一个C程序,它分叉两个进程,每个进程都使用
system()要调用2个脚本(script1.sh和script2.sh),我想要做的是让它们并行地在一个文件(output.txt)中写入,但在不同的时刻。现在,我的script1.sh (来自process P1)首先在文件中写入,然后script2.sh (来自process P2)写入同一个文件,但我需要它们以这种方式编写:
time 1: P1 writes 2 words in "output.txt"
time 2: P2 wirtes 3 words in "output.txt"
time 3: P1 writes 1 word in "output.txt"
time 4: P2 writes 6 words in "output.txt" etc...我知道
system()函数是同步的,但我成功地使它成为异步的
system("script1.sh &")问题是,我不知道如何做到这一点,因为如果P1使用"&“调用script1.sh,那么它将在P2期间执行,而不会暂停,所以这不是我想要的。我还知道如何停止使用P1
pkill -f "script1.sh所以也许这对我不知道有帮助。
我怎么能达到那个目标?谢谢
发布于 2014-07-06 21:04:07
也许您可以将GNU并行化并将输出重定向到文件:
system("(echo script1.sh; echo script2.sh) | parallel > output.txt");https://askubuntu.com/questions/251687
复制相似问题