Chinaunix首页 | 论坛 | 博客
  • 博客访问: 501652
  • 博文数量: 174
  • 博客积分: 8001
  • 博客等级: 中将
  • 技术积分: 1840
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-04 19:30
文章分类

全部博文(174)

文章存档

2011年(1)

2010年(24)

2009年(149)

我的朋友

分类: LINUX

2009-04-15 21:55:23

不知道是代码问题还是系统问题 open()打开文件的文件返回值都是0 各位帮忙看看 出题出在哪里?谢谢!!
代码如下:
#include
#include

int main(void)
{
int fd1;
int fd2;

if(fd1=open("a.c",O_RDWR,O_CREAT)<0)
printf("open failed!!\n");
if(fd2=open("/home/farmerbee/doc/rpm",O_RDONLY)<0)
printf("open failed!!\n");
if(fd1>=0&&fd2>=0)
printf("file id:%d,%d",fd1,fd2);
return 0;
}

优先级的问题,=的优先级没有<高
所以fd1得到的值是后面两者比较的值,而不是文件描述符
if((fd1=open("a.c",O_RDWR,O_CREAT))<0) 就可以了

!!!!!!!!!!!!
阅读(360) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~