linux C/C++:文件操作--open、create、close
文件描述符
内核(kernel)利用文件描述符(file
descriptor)来访问文件。文件描述符是非负整数。打开现存文件或新建文件时,内核会返回一个文件描述符。读写文件也需要使用文件描述符来指定待读写的文件。系统内核会为每一个进程维护一份文件描述符表。如下:
内核分配文件描述符规则是,永远分配未使用的并且是最小的。前三个文件描述符:0、1、2,在默认情况下已被占用。当然,可以先关闭。比如关闭1,再分配,可导致重定向。
函数原型
#include<fcntl.h>
int open(const char *path, int flag, .../*mode_t mode*/);
功能:打开文件
返回值:成功,返回文件描述符;若出错,返回-1
参数:
path 文件路径
flag 文件的打开模式
常见模式:O_RDONLY 只读 O_WRONLY 只写 O_RDWR
读写 O_EXEC 执行 O_SEARCH 搜索(应用于目录)(必须,五选一)
可选:O_APPEND 追加 O_CREAT 文件不存在,则创建等。
... 文件权限
函数原型
#include<fcntl.h>
int create(const char *path, mode_t mode);
功能:创建文件
返回值:成功,返回文件描述符;若出错,返回-1
参数:
path
文件路径
mode
文件权限
函数原型
#include<unistd.h>
int close(int fd);
功能:关闭打开的文件,释放资源
参数:fd是待关闭文件描述符
返回:成功,返回0;出错,返回-1
需要说明,当进程结束时,内核会关闭掉进程打开的文件。
所有内容的目录
时间: 2024-10-26 15:02:42