【linux系统编程】C标准I/O函数和系统无缓冲函数(Unbuffered I/O函数)关系

先接收一下,本文章主要内容:1.C标准I/O函数和系统无缓冲函数(Unbuffered I/O函数)关系;2.I\O函数:buffer && unbuffer;开始前,我们要清楚linux下C编程与WIN下C编程是不一样的,我们这片文章是linux下C编程,WIN下我并没有进行代码等相关测试。其次,我们来区分一下C标准I/O函数和C标准I/O函数这两个函数的概念:C标准I/O函
摘要由CSDN通过智能技术生成

先接收一下,本文章主要内容:

1.C标准I/O函数和系统无缓冲函数(Unbuffered I/O函数)关系;

2.I\O函数:buffer && unbuffer;

开始前,我们要清楚linux下C编程与WIN下C编程是不一样的,我们这片文章是linux下C编程,WIN下我并没有进行代码等相关测试。

其次,我们来区分一下C标准I/O函数和C标准I/O函数这两个函数的概念:

C标准I/O函数

定义在C标准库中,在所有支持C标准库的系统中都能使用C标准库函数。

Unbuffered I/O函数
每个系统(平台)下的系统函数都不同,这是系统级别的。

现在看看C标准I/O库函数是如何用系统调用实现的。

fopen(3)

调用open(2)打开指定的文件,返回一个文件描述符(就是一个int类型的编号),分配一个FILE结构体,其中包含该文件的描述符、I/O缓冲区和当前读写位置等信息,返回这个FILE结构体的地址。

fgetc(3)

通过传入的FILE *参数找到该文件的描述符、I/O缓冲区和当前读写位置,判断能否从I/O缓冲区中读到下一个字符,如果能读到就直接返回该字符,否则调用read(2),把文件描述符传进去,让内核读取该文件的数据到I/O缓冲区,然后返回下一个字符。注意,对于C标准I/O库来说,打开的文件由FILE *指针标识,而对于内核来说,打开的文件由文件描述符标识,文件描述符从open系统调用获得,在使用readwrite

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值