文件IO (一)

文件描述符

对于内核而言,所有打开的文件都能通过文件描述符进行引用。文件描述符是一个非负整数。当打开现有的文件或者创建一个文件的时候,操作系统内核会向应用进程返回一个文件描述符。当要进行文件的读写的时候,使用open或者create函数返回的文件描述符表示该文件,将其作为函数的参数传给read或者write进行文件的读写。
以下的几个文件描述符在UNIX操作系统里面是被定义和分配了的:

  • 0:操作系统标准输入
  • 1:操作系统标准输出
  • 2:操作系统标准错误
    0、1、2这三个文件描述符在操作系统的库函数中,已经被进行定义,可以分别用STDIN_FILENO、STDOUT_FILEOUT、STDERR_FILENO这几个符号常量进行表示,这几个符号常量定义在了

open函数

调用open可以打开或者创建一个文件。

#include <fcntl.h>
int open(const char *file_name, int oflag, .../* mode_t mode */);

第三个参数在具体的调用场景下会有所不同。对于open函数而言,仅当创建新的文件的时候,才需要使用第三个参数。
file_name是要打开或者要新创建的文件的名字。oflag参数可用来说明此函数的多个选项。用下列一个或者多个常量进行”或”运算构成oflag参数:

  • O_RDONLY 只读打开
  • O_WRONLY 只写打开
  • O_RDWR 读、写打开

大多数的实现将O_RDONLY定义为0,O_WRONLE定义为1,O_RDWR定义为2
在上面的三个常量中必须指定,且只能指定一个,下面的常量是可选的:

  • O_APPEND 每次写都追加到文件的尾端
  • O_CREATE 如果这个文件不存在,则创建它
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值