该内容较多,包含了文件系统原理及访问机制、文件在内核中的管理机制、文件信息节点inode、文件共享、文件权限……
按照实际的应用场景:账单、游戏进度、配置文件……
Windows手动编写文档:打开/创建文档编辑文档保存文档关闭文档
Linux系统提供了一系列API:
打开 open 读写 write/read
光标定位lseek 关闭 close
打开/创建文件
头文件:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
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 可读可写
三个只能指定一个,当我们附带了以上权限,打开的文件就只能按照上述权限操作
下列常数是可选的:
O_CREAT 若文件不存在则创建它,使用该选项需要说明第三个参数mode,说明该文件的存储权限
O_EXCL 如果同时指定了CREAT,且文件存在,则出错
O_APPEND 每次写时加到文件尾端
O_TRUNC 属性去打开文件时,如果文件中本来是有内容的,而且为只读或只写成功打开,将其长度截短为0
Mode:一定是在flags使用了O_CREAT标志,mode记录待创建的文件的访问权限
Linux用open函数打开文件,下一步write(写)read(读)文件时,就要通过open()返回值,也就是文件描述符确定要操作的特定文件。
每个进程打开一个文件时,都会建立一个结构体来管理文件,文件描述符在结构体中起到索引的作用。
文件权限:
1.可读 r 4
2.可写 w 2
3.执行 x 1
0600:6:4+2对应可读和可写