gpt4 book ai didi

c++ - 与Boost中的dup2类似的功能

转载 作者:行者123 更新时间:2023-12-03 07:22:24 25 4
gpt4 key购买 nike

我想做这样的事情

acceptSocket = accept(...);
if (fork() == 0) {
// ..
dup2(acceptSocket, 1);
dup2(acceptSocket, 2);
execvp(/*some command*/);

}
现在我要转向C++ boost,我想做同样的事情。有没有类似的东西?可能是Boost Process和套接字流,但我不太清楚。提前致谢。

最佳答案

您可以使用Boost Process:https://www.boost.org/doc/libs/1_74_0/doc/html/boost/process/posix/fd.html

This property lets you modify file-descriptors other than the standardones (0,1,2).

It provides the functions bind, which implements dup2 and close.


因此,例如:
#include <boost/process.hpp>

namespace bp = boost::process;
using bp::posix::fd;

int main() {
int acceptSocket /* = accept(...) */;

bp::child child(
bp::search_path("someprogram.exe"),
fd.bind(1, acceptSocket),
fd.bind(2, acceptSocket));

child.wait();
}

关于c++ - 与Boost中的dup2类似的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64749047/

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