免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 23870 | 回复: 4
打印 上一主题 下一主题

[函数] linux下open函数的返回值fd是怎么回事 :?: [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-08-17 09:23 |只看该作者 |倒序浏览
文件描述府返回0~255之间的数,依次打开3个文件,fd增加吗?
实际中一直返回0,这个fd究竟怎么回事,thanks。

论坛徽章:
0
2 [报告]
发表于 2004-08-17 09:49 |只看该作者

linux下open函数的返回值fd是怎么回事 :?:

怎么会一直都返回0呢?代码贴出来看看。

论坛徽章:
0
3 [报告]
发表于 2004-08-17 10:26 |只看该作者

linux下open函数的返回值fd是怎么回事 :?:

#include <sys/types.h>;
#include <sys/stat.h>;
#include <fcntl.h>;
#include <errno.h>;
#include <stdlib.h>;
#include <sys/wait.h>;

int main()
{
        int fd1,fd2,fd3;
        int *status;
        if(fd1=open("u",O_RDONLY)==-1)
        {
                printf("open file error,No %d\n",errno);
        }else{
                printf("first file fd1 No %d\n",fd1);
        }
        printf("duplicate fd is %d\n",dup(fd1));//测试dup后fd
        close(fd1);//关闭fd,没有close下面fd2、3也是0

        if(fd2=open("vv",O_WRONLY)==-1)
        {
                printf("open file error,No %d\n",errno);
        }else{
                printf("second file fd2 No %d\n",fd2);
        }
        close(fd2);

        if(fork() >; 0) exit;
        else{//测试子程序中fd
                if(fd3=open("on",O_RDWR)==-1)
                {
                        printf("open file error,No %d\n",errno);
                }else{
                        printf("third file fd3 No %d\n",fd3);
                }
        }
        close(fd3);
        wait(status);

        return 0;
}

论坛徽章:
0
4 [报告]
发表于 2004-08-17 11:06 |只看该作者

linux下open函数的返回值fd是怎么回事 :?:

if((fd1=open("u",O_RDONLY))==-1)

论坛徽章:
0
5 [报告]
发表于 2004-08-17 14:00 |只看该作者

linux下open函数的返回值fd是怎么回事 :?:

[quote]原帖由 "FH"]if((fd1=open("u",O_RDONLY))==-1)[/quote 发表:

kao,汗!
原来这里一步留神出了错,基础不扎实啊!
还以为open有问题呢,thanks!
简直跟王克南一样,0分,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP