当前位置: 首页 > news >正文

文件尾存在EOF吗?

参考:http://bbs.csdn.net/topics/290027166

我們先一起來看看FILE是怎么定義的:
  FILE                          <STDIO.H>

File control structure for streams.

  typedef struct {
    short          level;
    unsigned       flags;    char           fd;
    unsigned char  hold;
    short          bsize;
    unsigned char *buffer, *curp;
    unsigned       istemp;
    short          token;
  } FILE;

再來看看這個flags是怎么定義的:
  _F_xxxx                           <STDIO.H>

File status flags of streams

  Name    ?Meaning
  _F_RDWR ?Read and write
  _F_READ ?Read-only file
  _F_WRIT ?Write-only file
  _F_BUF  ?Malloc'ed buffer data
  _F_LBUF ?Line-buffered file
  _F_ERR  ?Error indicator
  _F_EOF  ?EOF indicator
  _F_BIN  ?Binary file indicator
  _F_IN   ?Data is incoming
  _F_OUT  ?Data is outgoing
  _F_TERM ?File is a terminal
}

在來看看EOF在頭文件中是怎么定義的:
/*EOF a constant indicating that the end-of-file has been reached on a file*/

#define _F_EOF  0x0020                  /* EOF indicator        */
#define EOF     (-1)                    /* End of file indicator */
EOF在與fread等文件函數的返回值做比較時,時替換為(-1)的
在文件中根本不存在EOF這個東西,EOF不過是文件類函數讀到結尾時返回的一個結束標志

 

另外,在谭浩强版C语言教程中也有说明:EOF是在stdio.h文件中定义的符号常量,值为-1。......如果在执行fgetc函数读字符时遇到文件结束符,函数返回一个文件结束标志EOF(即-1)。

转载于:https://www.cnblogs.com/nufangrensheng/p/3491718.html

相关文章:

  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • JMeter中的读取json数据---JSON Extractor插件
  • 添加GDataXMLNODE.h和.m的方法
  • Administrator 被禁用
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 工作地址
  • Mysql系列七:分库分表技术难题之分布式全局唯一id解决方案
  • 2014年第一天
  • zabbix3.4 修改监控范围
  • poj1006_Biorhythms
  • JAVA自学笔记13
  • nginx根据访问的url参数或者是请求 头部做判断转发
  • Spark源码分析 -- TaskScheduler
  • BZOJ 1974 [Sdoi2010] auction 代码拍卖会(数位dp)
  • Java中单例设计模式之最佳实践举例
  • ES6指北【2】—— 箭头函数
  • Android Volley源码解析
  • Bootstrap JS插件Alert源码分析
  • CSS盒模型深入
  • es的写入过程
  • js 实现textarea输入字数提示
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • Redis在Web项目中的应用与实践
  • vuex 笔记整理
  • 给github项目添加CI badge
  • 关于for循环的简单归纳
  • 嵌入式文件系统
  • 入门到放弃node系列之Hello Word篇
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 小李飞刀:SQL题目刷起来!
  • 宾利慕尚创始人典藏版国内首秀,2025年前实现全系车型电动化 | 2019上海车展 ...
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​渐进式Web应用PWA的未来
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (bean配置类的注解开发)学习Spring的第十三天
  • (delphi11最新学习资料) Object Pascal 学习笔记---第8章第5节(封闭类和Final方法)
  • (LeetCode) T14. Longest Common Prefix
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (简单) HDU 2612 Find a way,BFS。
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (学习日记)2024.02.29:UCOSIII第二节
  • (一)pytest自动化测试框架之生成测试报告(mac系统)
  • (原創) 如何安裝Linux版本的Quartus II? (SOC) (Quartus II) (Linux) (RedHat) (VirtualBox)
  • (转)C语言家族扩展收藏 (转)C语言家族扩展
  • (转)setTimeout 和 setInterval 的区别
  • (转)大型网站架构演变和知识体系
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .【机器学习】隐马尔可夫模型(Hidden Markov Model,HMM)
  • .NET core 自定义过滤器 Filter 实现webapi RestFul 统一接口数据返回格式
  • .NET I/O 学习笔记:对文件和目录进行解压缩操作
  • .NET 的程序集加载上下文
  • @Bean有哪些属性
  • @DependsOn:解析 Spring 中的依赖关系之艺术
  • @EnableConfigurationProperties注解使用