Linux——文件描述符的理解
1.概念
在linux下一切皆文件,文件描述符是内核为了高效的管理已经被打开的文件所创建的索引,它是一个非负整数,用于指代被打开的文件,所有执行I/O操作的系统调用都是通过文件描述符完成的。而系统调用函数open的返回值就是文件描述符-fd。
2.与系统调用函数(opem,read ,write,close,lseek)的关系
int open(const char *pathname,int flags,mode_t mode);
- pathname :要打开的文件名称(路径+名称)
- flags :以何种方式打开
- 必须的宏,三个宏有且只能出现一个
- O_RDONLY :只读方式
- O_WRONLY : 只写方式
- O_RDWR :读写方式可选的宏
O_APPEND :追加
O_TRUNC :截断
O_CREAT :文件不存在则创建
使用的方式,必须的宏和可选的宏之间使用按位或的方式eg: O_RDWR | O_CREAT - mode :权限
新创建出来的文件设置权限
传参的时候,传递8进制数字就可以了 - 返回值:
打开成功,返回大于等于0的数字,是文件描述符打开失败,返回-1
ssize_t read(int fd,void *buf,size_t count) :