问题标签 [boost-process]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - 在 boost::asio::io_service 下获取 boost::process::child 的退出代码?
以下程序:
输出383
:
我希望它能够成功完成输出0
。/bin/ls
我错过了什么?
c++ - boost::process 异步 IO 示例不起作用?
以下程序:
输出383
。我希望它能够输出0
。
这几乎是来自以下示例的复制和粘贴:
c++ - 主程序退出后停止子进程c ++
父母的工作完成后,孩子还活着吗?如果是这样,如果主进程完成,我怎么能杀了他?我使用了boost库(boost process,boost asio)。如果可能的话,它应该是MacOs、Windows和Linux的解决方案。
c++ - Boost::Process 管道流和单元测试
我有两个这样的流的来源:
我想知道是否有办法手动写入这个 StdOut 并从 StdIn 读取以进行单元测试?非常感谢!
c++ - Boost::process child by id
如何在 on_exit 函数中获取 child.id() ?
或者如果孩子按 id 运行,我如何检查其他功能?
c++ - boost::process::child 在关闭输入流后不会退出
在下面的示例中,我尝试将一些数据写入子进程,该子进程处理数据并将其写入文件。关闭流后,父进程无限期地等待子进程完成。我不知道如何表明我已经完成了数据的写入,并且希望子进程停止阅读并完成它正在做的任何事情。根据文档,调用终止会发送一个SIGKILL
我认为不是我想要的。
我错过了什么?我检查了这个问题,但我宁愿先尝试使实际代码与同步 IO 一起工作。
test.py 只是将数据写入文件,如下所示:
c++ - 使用 boost 创建多个异步运行的子进程
如何生成多个应该异步运行的子进程?我是否使用vector
子进程?恐怕下面的代码并没有做我想要完成的事情。也欢迎任何其他关于将参数传递给子进程的不同方式的建议!
c++ - cmd.exe 关闭时进程在 Windows 上终止?
我有一个程序(我们称之为 prog1.exe)启动另一个程序(我们称之为 prog2.exe):
如果我启动 cmd.exe:
然后运行 prog1.exe:
然后:
- prog1.exe 开始运行
- prog1.exe 启动 prog2.exe 并且 prog2.exe 开始运行
- prog1.exe 成功完成。
- prog2.exe 继续运行。
如果我在 prog2.exe 仍在运行时关闭 cmd.exe,它将在 prog2.exe 完成之前终止它。
为什么会这样?为什么 prog1.exe 结尾不会终止 prog2.exe,而 cmd.exe 结尾不会终止 prog2.exe ?
有什么办法可以使关闭 cmd.exe 不会终止 prog2.exe?
c++ - 如何从 C++ 中长时间运行的子进程获取输出
从 C++ 程序中,我想要:
- 启动子进程。
- 等到它发出一行输出。
- 捕获该行输出,并允许子进程继续运行。
这感觉应该是微不足道的,但我现在已经尝试了两种方法,并且每次都遇到了类似的障碍。首先我用过boost::process
,像这样:
第二种方法是只使用popen
:
在这两种情况下,程序在尝试从管道读取时都会阻塞——分别在getline
和fgets
中,gdb 显示它卡在低级读取函数中:
对于进一步的上下文,other_executable
是一个小型 Python 程序,当它自己运行时会按预期运行(发出输出,保持不变)。它还打开了一个服务器,在这两种情况下我都可以很好地与它通信,所以它肯定会运行(GDB 的 detach 消息进一步证实了这一点,同样如此ps
)。
我在这里做错了什么?
c++ - 启动第二个 Linux 程序并从 C/C++ 退出当前程序?
是否可以从 C 或 C++ Linux 程序(例如/usr/bin/foo
)以编程方式启动另一个程序(例如/usr/bin/bar
),并foo
正常退出并bar
继续运行?
system(3)
不适合,因为它会阻塞直到其他程序完成。我想要立即返回的东西。
这些程序都是 GUI 程序,但我怀疑这不相关。
Qt 或 boost::process 中有什么可以提供帮助的吗?
有没有我可以运行的通用 Linux 包装程序system(3)
来实现这一点?我试过xdg-open
了,但我不认为这是正确的。
基本上我希望第二个程序与第一个程序“分离”,并且表现得就像用户通过系统 UI 启动它一样。(例如,在 MacOS 上,有一个open
命令,所以它会像system("open /usr/bin/bar")
)