gpt4 book ai didi

c - popen 创建一个额外的 sh 进程

转载 作者:行者123 更新时间:2023-12-02 17:52:09 26 4
gpt4 key购买 nike

我正在尝试使用 popen 执行(fork off)一个命令,我看到的是,还有一个额外的 sh -c "my_command process" 也在那里。

我想最大限度地减少进程数量,那么是否可以摆脱它?

ps 输出:

root@home% ps awux | grep my_command
root 638 0.0 0.1 040 1424 ?? I 10:12PM 0:00.00 sh -c my_command /home/war
root 639 0.0 0.0 608 932 ?? S 10:12PM 0:00.01 my_command /home/war

阅读手册页后,我知道这就是 popen() 的工作原理。

上述问题的答案由@R提供..

我的要求是这样的,我需要将命令的输出转储到文件中并逐行读取该文件并处理输出。这就是我使用 popen 的原因,因为它返回文件中的输出。我可以通过任何 exec 调用来实现这一点吗?

最佳答案

您应该听取那些建议您不要使用 popen 的好心人的建议 - 这很糟糕。但是,对于您遇到的问题,有一个简单的解决方案 - 将 exec 添加到传递给 popen 的命令行的开头。也就是说,而不是:

popen("my_command /home/war", ...

用途:

popen("exec my_command /home/war", ...

关于c - popen 创建一个额外的 sh 进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6742635/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com