[问题]open返回的文件描述符始终是0

C、C++和Java语言
回复
farmerbee
帖子: 12
注册时间: 2006-10-13 17:41
送出感谢: 0
接收感谢: 0

[问题]open返回的文件描述符始终是0

#1

帖子 farmerbee » 2006-10-22 17:49

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

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;
}
Redbad
帖子: 29
注册时间: 2006-05-30 14:28
来自: NUC
送出感谢: 0
接收感谢: 0
联系:

#2

帖子 Redbad » 2006-10-23 16:59

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

回到 “C/C++/Java”