首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >bash和c-2进程以并发方式写入文件。

bash和c-2进程以并发方式写入文件。
EN

Ask Ubuntu用户
提问于 2013-02-05 17:20:56
回答 1查看 2.7K关注 0票数 2

我编写了一个C程序,它分叉两个进程,每个进程都使用

代码语言:javascript
复制
 system()

要调用2个脚本(script1.sh和script2.sh),我想要做的是让它们并行地在一个文件(output.txt)中写入,但在不同的时刻。现在,我的script1.sh (来自process P1)首先在文件中写入,然后script2.sh (来自process P2)写入同一个文件,但我需要它们以这种方式编写:

代码语言:javascript
复制
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...

我知道

代码语言:javascript
复制
 system()

函数是同步的,但我成功地使它成为异步的

代码语言:javascript
复制
 system("script1.sh &")

问题是,我不知道如何做到这一点,因为如果P1使用"&“调用script1.sh,那么它将在P2期间执行,而不会暂停,所以这不是我想要的。我还知道如何停止使用P1

代码语言:javascript
复制
 pkill -f "script1.sh

所以也许这对我不知道有帮助。

我怎么能达到那个目标?谢谢

EN

回答 1

Ask Ubuntu用户

发布于 2014-07-06 21:04:07

也许您可以将GNU并行化并将输出重定向到文件:

代码语言:javascript
复制
system("(echo script1.sh; echo script2.sh) | parallel > output.txt");
票数 0
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/251687

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档