open函数的问题,请教各位大神啊!!!!!!!!!!
在Linux RedHat中,为什用open函数以只读方式打开一个文件而是可以成功,并且还会创建文件??
不是应该加了O_CREAT之后才会创建文件的吗??请教各位大神帮助小弟解答
以下是代码
#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
int main(int argc,char **argv)
{
int fd=0;
if(argc<2)
{
puts("please input the open file pathname!\n");
exit(1);
}
if((fd=open(argv[1],O_RDONLY))<0)
{
perror("open file failure!\n");
exit(1);
}
else
{
printf("open file %d success!\n",fd);
}
close(fd);
exit(0);
}
------解决方案--------------------不会啊。。我是centos的,运行打开失败,没看到创建文件啊
------解决方案--------------------不会吧!把文件删掉再运行试试!
The argument flags must include one of
the following access modes: O_RDONLY, O_WRONLY, or O_RDWR.
These request opening the file read-only, write-only, or read/write, respectively.
------解决方案--------------------是不是这个文件已经有了,你没看见呢?