【发布时间】:2014-02-15 04:30:21
【问题描述】:
我正在尝试编写一个 c++ 程序,它将异步运行 linux 命令并为 linux 命令的返回值注册一个回调。我真正想要的是编写一个实用函数,我将向其传递两个参数,一个是 linux 命令,另一个是回调。
当我们调用这个实用函数时,它不应该阻塞程序并继续执行程序。但是一旦执行了 linux 命令,它将调用我们作为第二个参数传递的回调。
我已经尝试过 c++ system() 函数。并已尝试运行 boost.process 标头 linux命令。但它们都是从 C++ 调用 linux 调用的阻塞方式。
我不熟悉这种异步+回调寄存器类型的编程。
该程序应该与我在 node.js 程序中尝试过的程序完全一样,我在我的 node.js 程序中使用了该程序。这对我来说非常有效,我为此关注的链接是http://www.dzone.com/snippets/execute-unix-command-nodejs
请帮助我在 C++ 中完成这项工作。我需要在对我来说完美运行但阻塞的 c++ 系统调用中做哪些改进。还是我们在 C++ 或 boost 库中有一些直接可用的工具。
注意:我使用的是 g++ 4.3 编译器。它不是 C++0x 或 C++11。
谢谢, 阿布舍克
【问题讨论】:
标签: c++ linux node.js boost asynchronous