linux系统编程之文件与I/O(一):文件的打开关闭

本文介绍了Linux系统中文件描述符的概念及其在文件操作中的作用,包括如何通过文件描述符进行文件的打开和关闭。讨论了open系统调用的不同形式,详细解释了各种打开文件的标志,并提及了文件的访问权限。最后,提到了close系统调用用于释放文件描述符。
摘要由CSDN通过智能技术生成

一、文件描述符

对于Linux而言,所有对设备或文件的操作都是通过文件描述符进行的。当打开或者创建一个文件的时候,内核向进程返回一个文件描述符(非负整数)。后续对文件的操作只需通过该文件描述符,内核记录有关这个打开文件的信息(file结构体)。
一个进程启动时,默认打开了3个文件,标准输入、标准输出、标准错误,对应文件描述符是0(STDIN_FILENO)、1(STDOUT_FILENO)、2(STDERR_FILENO),这些常量定义在unistd.h头文件中。


fileno:将文件指针转换为文件描述符
fdopen:将文件描述符转换为文件指针


二、什么是I/O

输入/输出是主存和外部设备之间拷贝数据的过程
设备->内存 (输入操作)
内存->设备 (输出操作)
高级I/O
ANSI C提供的标准I/O库称为高级I/O,通常也称为带缓冲的I/O
低级I/O
通常也称为不带缓冲的I/O


三、文件的打开关闭

open系统调用1:

函数原型
int open(const char *path, int flags);
参数
path :文件的名称,可以包含(绝对和相对)路径
flags:文件打开模式
返回值:
打开成功,返回文件描述符;打开失败,返回-1


open系统调用2:

函数原型
int open(const char *path, int flags,mode_t mode);
参数
path :文件的名称,可以包含(绝对和相对)路径
flags:文件打开模式
mode:  用来规定对该文件的所有者,文件的用户组及系 统中其他用户的访问权限
返回值:
打开成功,返回文件描述符;打开失败,返回-1


打开文件的方式:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值