文件的打开及创建
打开的API:open
open某个文件,会返回某个文件的描述符,open的返回值就是文件描述符。
查看man手册man 2 open 来查看信息。
open的第一个参数 (*pathname)是要打开哪个文件,第二个参数(flags)是用那种方式打开文件。
(最常用的文件打开方式:O_RDONLY只读打开,O_WRONLY只写打开,O_RDWR可读可写打开,O_CREAT创建文件)
(注释:
1.可读 r 4
2.可写 w 2
3.执行 x 1
4.0600: 给文件的所有者,所有者就是登录linux的用户为0600中的6,6代表4+2(可读可写的意思r+w),剩下的0先不作为了解,照着用就行),
1.判断文件是否存在,如果存在返回整数,否则返回负数
#include <sys/types.h>
#include <sys/stat.h> /*前三行为open的头文件 man 2 open*/
#include <fcntl.h>
#include <stdio.h>
int main()
{
int fd;
fd=open("./file1",O_RDWR);
/*以可读可写的方式打开某个文件,例如file1*/
printf("fd=%d\n",fd);
return 0;
}
文件存在输出的结果:
文件不存在输出的结果:
2.如果文件不存在,需要创建文件
创建的API: O_CREATE
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
int main()
{
int fd;
fd=open("./file1",O_RDWR);//打开file1
if(fd==-1)
{
printf("open file1 failed\n");
/*如果等于-1的话输出失败*/
fd=open("./file1",O_RDWR|O_CREAT,0600);
/*可读可写并创建打开file1*/
if(fd>0)
{
printf("create file1 success\n");
}
/*大于0则打印成功*/
}
printf("fd=%d\n",fd);
return 0;
}
存在文件:
不存在文件要创建文件:
可读可写可执行生成可执行程序a.out
x代表可执行的意思
@上官可编程