重定向由execv运行的进程的输出
Redirect output of process ran by execv
可能的重复项:
将输出重定向到 C 中的文件
我正在运行一个进程,如下所示:
char* [NUM];
char[0] = processName;
char[1] = arg0;
...
char[NUM] = 0;
execv(args[0],args);
问题是我如何让它将其输出重定向到
/dev/null
我尝试将其添加到 args 数组中,但它将其作为参数发送到程序......
有人知道吗?
谢谢
首先打开所需的目标,然后关闭所需的fd
重新分配,使用 dup2
将其连接到那里,然后关闭上一个打开:
int tmpFd = open( "/dev/null", O_WRONLY );
if ( tmpFd == -1 ) {
// Real problem, couldn't open /dev/null
}
if ( dup2( tmpFd, 1 ) ) != 1 ) {
// Real problem, dup2 failed.
}
close( tmpFd );
相关文章:
- 在Qt Creator中,如何在连接到正在运行的进程后查看控制台输出
- 如何在不丢失输出的情况下杀死/停止终端中正在运行的进程?
- 如何使用 c++ libboost 运行进程并获取其输出?
- 从 c++ 中的实例化进程获取输出的可靠方法是什么?
- 如何从进程获取实时、非阻塞输出
- 提升进程间共享内存删除、权限和输出文件
- 捕获远程进程子进程的标准输出
- 无法使用创建进程重定向标准输出
- 重定向子进程的输出
- 我可以重定向两个子进程的标准输出吗?
- 无法读取在cmd.exe管道下启动的进程的输出
- 将生成的进程标准输出捕获为 unicode
- 创建进程和重定向输出
- 从创建进程创建的进程获取输出
- C++ 读取 Java 进程输出
- 重新启动的进程输出不会读取
- 重定向子进程输出
- 重定向子进程输出到缓冲区
- 如何读取未刷新的进程输出?
- 重定向子进程输出到FIFO不工作