linux的文件io和标准io区别

本文详细解释了文件IO操作中用户空间缓存、内核空间缓存以及标准IO库缓存的工作原理,包括C库缓存如何处理换行符和满载时的系统调用。通过一个简单的C代码示例来验证库缓存的存在。

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

文件io:是直接调用内核提供的系统调用函数,头文件是unistd.h

标准io:是间接调用系统调用函数,头文件是stdio.h       

涉及到缓存的知识点:

缓存的概念

  1.我们的程序中的缓存,就是你想从内核读写的缓存(数组)--用户空间的缓存

2.每当打开一个文件,内核在内核空间中也会开辟一块缓存,这个叫内核空间的缓存

文件io中的写即是将用户空间中的缓存写到内核空间的缓存中

文件io中的读即是将内核空间中的缓存读到用户空间的缓存中

3.标准io的库函数也有一个缓存,这个缓存称为 库缓存

C库缓存的特点:
1.遇到\n时,会将库缓存的内容写道内核缓存中,即调用了系统的调用函数

2.遇到库缓存写满的时候,会调用系统调用函数,将库缓存内容写入内核缓存中。

(在1024字节的时候写满)

1.验证库缓存的存在

#include <stdio.h>

int main()
{
    char buf[] = "hello linux";
    printf("%s",buf);
    whlie(1);
    return 0
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

码君

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

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

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

打赏作者

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

抵扣说明:

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

余额充值