【Linux操作系统】进程与内存文件的关系及文件描述符fd、重定向的理解

一、关于文件和进程关系的简介

1.文件 = 文件内容 + 文件属性 即使空文件也有属性,由此得知,空文件也有大小
2.我们如果想访问文件,第一步都是要打开它,想要修改文件,都要通过执行代码以进程的方式完成修改
3.我们的CPU只能访问内存,因此文件必须被加载到内存中才能访问
4.一个进程可以打开多个文件,在一定时间内,系统会存在多个进程,但可能同时会存在更多被打开的文件,我们的系统是如何对这些文件进行管理的呢?
5.系统中是不是所有的文件都被进程打开了(内存文件)?并不是,没有被打开的文件在磁盘中(磁盘文件)
6.根据操作系统对文件先描述在组织的理论,我们可以猜测,操作系统内核中一定要有描述被打开文件的结构体,并用其定义

二、了解文件操作的系统接口和C语言文件操作接口

1.C语言文件操作接口

下面只是简单介绍几种常用接口,如想详细了解可以看(C语言文件接口详解
1.打开关闭文件

FILE * fopen ( const char * filename, const char * mode );

mode表⽰⽂件的打开模式常见如:
在这里插入图片描述
以w方式打开文件,该文件会被文件清空

2.读取文件

size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);

从stream指向的文件中读取数据到ptr指向的数组中。size是每个元素的大小(以字节为单位),nmemb是要读取的元素数量。函数返回成功读取的元素数量。

int fscanf(FILE *stream, const char *format, ...);

从stream指向的文件中按照format指定的格式读取数据,并将数据存放到后续的参数中。成功时返回成功读取并赋值的输入项数量,失败时或到达文件末尾时返回EOF。

char *fgets(char *str, int n, FILE *stream);

从stream指向的文件中读取一行数据,并将其存储在str指向的数组中。n是数组的大小,用于限制读取的字符数(包括最后的空字符\0)。成功时返回指向str的指针,失败时或到达文件末尾时返回NULL。

3.写入文件

size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);

将ptr指向的数组中的数据写入到stream指向的文件中。size是每个元素的大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

饿了我会自己捡代码吃

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值