首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

为什么要复制文件描述符,该怎么解决

2012-09-23 
为什么要复制文件描述符if (-1 ! (fd open(/dev/null, O_WRONLY))) {close(STDOUT_FILENO)dup2(fd,

为什么要复制文件描述符
if (-1 != (fd = open("/dev/null", O_WRONLY))) {
close(STDOUT_FILENO);
dup2(fd, STDOUT_FILENO);
close(fd);
}
这段代码中为什么要复制一个文件描述符?

[解决办法]
为了把标准输出重定向到/dev/null, 但是这个程序有两个问题
1. 如果 fd 等于 STDOUT_FILENO, 就不应该close(fd)
2. close(STDOUT_FILENO);是多余的,dup2内部会close的。
[解决办法]

C/C++ code
int dup2(int oldfd, int newfd);//dup2() makes newfd be the copy of oldfd, closing newfd first if necessary 

热点排行