Linux 系统编程之文件编程

本文详细介绍了Linux系统编程中的文件操作,包括文件描述符的概念、文件的创建(creat)、打开(open)、关闭(close)、写入(write)、读取(read)以及文件光标的移动和计算文件大小(lseek)。文件描述符是进程操作文件的关键,通过open函数可以选择不同的打开模式,如只读、只写或读写,并设置文件权限。close函数用于关闭文件,write和read分别用于写入和读取文件内容,lseek可以改变文件读写位置并获取文件大小。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在这里插入图片描述

达者为先  师者之意


1 文件描述符(fd)

Linux文件的身份证号码
文件描述符是一个非负的整数,当打开一个文件或创建一个文件时,内核向进程返回一个标识该文件的整数,即fd。
注意,若文件不被创建打开(即没有载入进程),是没有文件描述符可言的。
必需明确一个概念;UNUX中的一切皆是文件。因此对于特殊的文件有特殊的文件描述符。

linux中, 每一个进程在内核中,都对应有一个“打开文件”数组,存放指向文件对象的指针,而 fd 是这个数组的下标。
我们对文件进行操作时,系统调用,将fd传入内核,内核通过fd找到文件,对文件进行操作。既然是数组下标,fd的类型为int,< 0 为非法值,>=0 为合法值。

在Linux中,一个进程默认可以打开的文件数为1024个,fd的范围为0~1023。可以通过设置,改变最大值。
在linux中,值为0、1、2的fd,分别代表标准输入、标准输出、标准错误输出。

2 文件的创建(creat)

头文件

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>

函数原型

int creat(const char *filename,mode_t mode)

filename:要创建的文件名(包含路径、缺省为当前路径)
mode:创建模式 //可读可写可执行
常见创建模式:
宏表示 数字
S_IXUSR 1 可执行
S_IWUSR 2 可写
S_IRUSR 4 可读
S_IRWXU 7 可读、写、执行
creat函数的返回值
成功:返回文件描述符
出错:返回-1并设置errno

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大红烧肉

赠人玫瑰,手留余香。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值