linux一切皆文件(除了网口)
内核链表:通过内核链表进行管理,所有一切皆文件
系统io(open,read,close)
open
查看命令:man 2 open
头文件:
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
原函数:
功能:打开文件
参数1:待打开文件的文件名及其路径(相对路径)
参数2:打开文件的方式(三选一 O_RDONLY O_WRNNNOLY O_RDWR)
(附加:O_APPEND 追加 O_CREAT 如果文件不存在就创建 ,存在则直接打开 O_TRUNC 如果文件存在则清空)
参数3:自由文件被创建时才会生效,用于设置被创建的文件的权限
如果文件被创建时,没有设置这个参数,则文件访问权限随机
如果文件已存在,无法通过这个参数修改文件权限
返回值:
成功:返回文件描述符(>=3的值)
失败:返回-1且errno被自动设置
int open(const char *pathname,int flags);
int open(const char *pathname,int flags,mode_t mode);
文件描述符:
本质:数组下标