C语言FILE结构体以及缓冲区深入探讨(unix/linux编程实现2.4)

本文深入探讨了C语言中的FILE结构体及其缓冲区管理,包括结构体定义、标准输入输出定义以及读写状态标志位。还介绍了相关的函数声明如_fillbuf()和_flushbuf(),以及eof()和ferror()等常用文件操作宏。

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

在C语言中,用一个指针变量指向一个文件,这个指针称为文件指针。通过文件指针就可对它所指的文件进行各种操作。


定义文件指针的一般形式为:
    FILE  *fp;


这里的FILE,实际上是在stdio.h中定义的一个结构体,该结构体中含有文件名、文件状态和文件当前位置等信息。我们通过fopen返回一个文件指针(指向FILE结构体的指针)来进行文件操作。


注意:FILE是文件缓冲区的结构,fp也是指向文件缓冲区的指针。


不同编译器 stdio.h 头文件中对 FILE 的定义略有差异,这里以标准C举例说明:
 
  
      1. #define NULL 0
      2. #define EOF (-1)
      3. #define BUFSIZ 1024
      4. #define OPEN_MAX 20 // 一次打开的最大文件数
      5. // 定义FILE结构体
      6. typedef struct _iobuf {
      7. int cnt; // 剩余的字符,如果是输入缓冲区,那么就表示缓冲区中还有多少个字符未被读取
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值