网站优化排名软件,网站建设 福田,跨平台软件开发工具,浏览器怎么下载视频创建文件需要包含以下3个头文件
#include sys/types.h #include sys/stat.h #include fcntl.h 打开、创建文件有以下3个API
open的返回值——文件描述符#xff08;索引作用#xff09;#xff0c;是一个小的非负整数
int open(const char*pathn…创建文件需要包含以下3个头文件
#include sys/types.h #include sys/stat.h #include fcntl.h 打开、创建文件有以下3个API
open的返回值——文件描述符索引作用是一个小的非负整数
int open(const char*pathname,int flags); int open(const char*pathname,int flags,mode_t mode); int creat(const char*pathname,mode_t mode); pathname 要打开的文件名含路径缺省为当前路径
flags权限O_RDONLY只读打开 O_WRONLY只写打开 O_RDWR可读可写打开
当我们附带了权限后打开的文件就只能按照这种权限来操作以上3个常数中应当只指定1个。
下列常数是可选择的
O_CREAT若文件不存在则创建它。使用此选项时需要同时说明第三个参数mode用其说明该新文件的存取许可权限。
O_EXCL如果同时指定了O_CREAT而文件已存在则出错。
O_APPEND每次写时都加到文件的尾端。
O_TRUNC属性去打开文件时如果这个文件中本来时有内容的而且为只读或只写成功打开则将其长度截短为0.
mode一定是flages中使用了O_CREAT标志mode记录待创建的文件的访问权限。
代码实际演示
1、创建1个demo1.c文件
#include sys/types.h #include sys/stat.h #include fcntl.h #include stdio.h int main() { int fd; fdopen(./file1,O_RDWR); printf(fd%d\n,fd); return 0; } 编译运行输出fd3打开成功
第二次运行则fd-1表示打开失败
2、复制demo1.c为demo2.c
#include sys/types.h #include sys/stat.h #include fcntl.h #include stdio.h int main() { int fd; fdopen(./file1,O_RDWR); if(fd-1){ printf(open file1 failed\n); fdopen(./fail1,O_RDWR|O_CREAT,0600); if(fd0){ printf(creat file1 succse\n); } } printf(fd%d\n,fd); return 0; }
编译运行结果为
open file1 failed creat file1 succse fd3 发送命令ls能看到多了一个file1文件
a.out demo1.c demo2.c fail1
ls -l把所有文件清单列出
-rwxr-xr-x 1 CLC book 8479 Apr 4 17:25 a.out -rw-r--r-- 1 CLC book 169 Apr 4 17:07 demo1.c -rw-r--r-- 1 CLC book 310 Apr 4 17:25 demo2.c -rw------- 1 CLC book 0 Apr 4 17:25 fail1 -为普通文件r为可读权限w为可写权限x为可执行权限
看fail1为可读可写文件
文件权限一般分为3种可读、可写、可执行
结合代码中mode0600看642代表可读可写
4为可读r2为可写w1为可执行1
0600倒数第一位代表其他组倒数第二位代表同组倒数第三位是给文件所有者的权限
0700表示可读写执行