linux的read文件描述符,linux下c文件描述符问题(:Bad file descriptor)

下面是一个简单的小程序,用creat创建一个文件,获得文件描述符fd,之后write进一些字符,但是用read时,却报错:

read error !

: Bad file descriptor

源代码如下:

#include

#include

#include

#include

int main()

{

int fd;

if((fd=creat("file1.c",S_IRWXU))==-1){

perror("creat error !n");

exit(0);

}else{

//int fd=open("file1.c",O_RDWR);

if(write(fd,"ni hao !",sizeof("ni hao !")-1)==-1){

perror("write error !n");

exit(0);

}else{

if(write(fd,"jiangdunchuan !",sizeof("jiangdunchuan !"))==-1){

perror("error !n");

exit(0);

}

printf("successful !n");

}

char buff[100];

//int fd2=open("file1.c",O_RDWR);

if(read(fd,buff,100)==-1){

perror("read error !n");

exit(0);

}else{

printf("%sn",buff);

printf("okn");

}

}

return 0;

}

编译通过,运行结果:

read error !

: Bad file descriptor

如果将fd2的注释去掉,read改为(read(fd2,buff,100)==-1)时,运行结果正常!

望各位朋友指教,谢谢!

|

晕,没发出去

if((fd=open("jiangdunchuan.c", O_RDWR|O_CREAT|O_TRUNC,0777))==-1)

文件权限的问题。

|

创建文件的权限与打开文件的权限的区别~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值