标准c的IO缓存类型

本文详细解析了C语言中标准IO缓存的三种类型:全缓存、行缓存和无缓存,以及它们在不同场景下的应用。同时介绍了标准库函数和系统调用在文件操作中的区别,以及文件描述符的概念和使用范围。

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

标准c的IO缓存类型
全缓存:要求填满整个缓存区后才进行I/O系统调用操作。对于磁盘文件通常使用全缓存访问
行缓存:涉及一个终端时(例如标准输入和标准输出),使用行缓存。
行缓存满自动输出
碰到换行符自动输出
无缓存:标准错误流stderr通常是不带缓存区的,这使得错误信息能够尽快的显示出来
文件操作方式
标准库函数:遵守ISO标准,基于流的I/O,对文件指针(FILE结构体)进行操作
系统调用:兼容POSIX标准,基于文件描述符的I/O,对文件描述符进行操作
文件描述符
对于内核而言,所有打开文件都由文件描述符引用。文件描述符是一个非负整数。当打开一个现存文件或创建一个新文件时,内核向进程返回一个文件描述符。当读,写一个文件时,用open或creat返回的文件描述符标识该文件,将其作为参数传送给read或wirte。
在POSIX应用程序中,整数0,1,2被替换成符号常数(宏)STDIN_FILENO STDOUT_FILENO STDERR_FILENO.这些常数都定义在头文件<unistd.h>中。
文件描述符的范围是0-OPEN MAX。早期的UNIX版本采用的上限值是19(允许每个进程打开20个文件),现在很多系统则将其增加至63,Linux为1024

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值