Chinaunix

标题: 一个关于文件描述符复制的,大家帮忙分析一下 [打印本页]

作者: redbad    时间: 2006-10-17 11:15
标题: 一个关于文件描述符复制的,大家帮忙分析一下
#include<fcntl.h>

int main()
{
        int fdold;
        int fdnew=10;
        int fdtest;
        if((fdold=open("test",O_RDONLY|O_CREAT,0666))<0)
        {
                perror("open file fail";
                exit(1);
        }
        printf("now the fdnew is :%d\n",fdnew);
        fdtest=dup2(fdold,fdnew);
        printf("the return value is:%d\n",fdtest);
        printf("the old is :%d\nthe new is :%d\n",fdold,fdnew);

        exit(0);
}

执行完dup2以后fdtest和fdnew的值分别是多少?
如果fdnew不辅初值,情况又是什么呢?
小弟在此多谢了

[ 本帖最后由 redbad 于 2006-10-17 11:16 编辑 ]
作者: redbad    时间: 2006-10-17 11:17
晕!代码里面怎么还有表情符号呢?
这回换中文的分号
perror("open file fail");
作者: redbad    时间: 2006-10-17 19:01
这么多人,怎么没个回答的阿?
作者: langue    时间: 2006-10-17 19:34
fdold=3
fdtest=fdnew=10

dup(2) 返回最小的可用 fd,而 dup2(2) 返回的是你所指定的 fd。
不可以在 dup2(2) 的参数里不赋值。不希望手动给出新 fd,那么请使用 dup(2)。

这是基础问题,希望能够通过多读书、查看手册的方式解决。
作者: 思一克    时间: 2006-10-17 21:08
自己打印出来看就知道是多少了.




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2