1 文件权限
r w x读写执行
三个用户分别有不同的权限,根据不同用户权限决定权限码,比如0 6 6 6,转换为二进制为
0 111 111 111
- rwx rwx rwx
umask 系统默认权限掩码 0 0 0 2 表示对创建的文件对应的权限码进行屏蔽操作
umask(0)可以在程序中强行设置局部权限掩码
2 文件打开和使用和关闭
int fp open("文件路径",O_WRONLY|O_CREAT,0666);//第二个参数为系统定义的宏,
O_TRUNC表示打开时清空文件
这些宏都是通过比特位级别的传参,就是定义一个int f = 0;然后用位操作符,逐位代表参数。一个int就能传32种参数
const char *str = "test\n";
write(1,str,strlen(str)),把srt的内容到屏幕上。原理如图
read(0,str,strlen(str))从键盘上写入str
所以
write(fp,str,strlen(str))就向文件里写
read(fp,str,strlen(str))就是从文件读
close(fp)关闭,其实就是给一个文件的引用计数--(打开文件则是引用计数++),当引用计数减为0,说明没进程用这个文件,系统从文件链表上回收空间。