linux系统编程:文件操作--open、create、close

版权声明:本文为博主原创文章,转载,请注明出处。若是商业用途,请事先联系作者。 https://blog.csdn.net/zhangxiangDavaid/article/details/44122735

               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

需要说明,当进程结束时,内核会关闭掉进程打开的文件。



所有内容的目录


猜你喜欢

转载自blog.csdn.net/zhangxiangDavaid/article/details/44122735