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

               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

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



所有内容的目录


  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值