我正在按如下方式运行流程:
char* [NUM];
char[0] = processName;
char[1] = arg0;
...
char[NUM] = 0;
execv(args[0],args);
问题是我如何将其输出重定向到
/dev/null
我尝试将它添加到args数组中,但是它将它作为参数发送给程序......
任何人都知道吗?
由于
答案 0 :(得分:1)
首先打开您想要的目标,然后关闭您想要的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 );