相关疑难解决方法(0)

如何使用POSIX执行命令并在C++中获取命令输出?

我正在寻找一种方法来获取从C++程序中运行命令的输出.我已经看过使用system()函数,但这只会执行一个命令.这是我正在寻找的一个例子:

std::string result = system("./some_command");
Run Code Online (Sandbox Code Playgroud)

我需要运行一个任意命令并获取其输出.我看过Boost.org,但我找不到任何可以满足我需要的东西.

c++ posix system process return-value

427
推荐指数
8
解决办法
42万
查看次数

使用fork和exec启动过程,同时将stdout重定向到/ dev / null

我有一个非常具体的问题,经过大量搜索后无法找到答案。我有一个Linux程序。它的工作是在通过网络接收到特定消息时启动另一个辅助可执行文件(通过fork()exec())。我无权修改辅助可执行文件。

我的程序将所有TTY都打印到stdout,通常通过来启动它./program > output.tty 。我的问题是,第二个可执行文件非常冗长。它同时打印到标准输出,同时还将相同的TTY放在日志文件中。因此,我的output.tty文件最终包含了两个输出流。

我该如何设置,以便将辅助可执行文件的TTY重定向到/dev/null?我无法使用,system()因为我无力等待子进程。我需要能够解雇并忘记。

谢谢。

c linux process

3
推荐指数
1
解决办法
2020
查看次数

标签 统计

process ×2

c ×1

c++ ×1

linux ×1

posix ×1

return-value ×1

system ×1