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

在Linux中使用ferror()函数和feof()函数判断文件是否读取成功,或者读取指针是否到达了文件末尾?

函数用途常见场景
ferror()检测文件流是否发生错误文件写入失败、读取异常
feof()检测文件流是否到达文件末尾逐字符/逐块读取到文件结尾

1. ferror() 函数

作用:检测文件流是否发生了读写错误(如磁盘损坏、权限不足等)。
返回值

  • 非零值:表示发生错误。

  • 0:无错误。

2. feof() 函数

作用:检测文件流是否到达了文件末尾(End-of-File, EOF)。
返回值

  • 非零值:已到达文件末尾。

  • 0:未到达末尾。

示例代码:

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>FILE *f = NULL;
int  ret;
char  buf[128]  = {0};int main(void)
{f =  fopen("./test.txt","r+");if (NULL == f){perror("fopen error");return 1;}ret = fwrite("hello world",1,11,f);if ( ret < 11){perror("fwrite error");fclose(f);return 1;}ret == fseek(f,0,SEEK_SET);if (-1 == ret){perror(" fseek error");fclose(f);return 1;}ret == fread(buf,1,11,f);if (11 > ret){if (ferror(f)){printf("fread error\n");fclose(f);return 1;}else{if(feof(f)) {printf("fread end-of-file");fclose(f);return 1;}}clearerr(f);}printf("fread %s\n",buf);fclose(f);return 0;
}

运行结果:

http://www.xdnf.cn/news/2294.html

相关文章:

  • python实战项目66:抓取考研招生专业信息
  • 2025上海车展 | 移远通信重磅发布AR脚踢毫米波雷达,重新定义“无接触交互”尾门
  • IO与文件·I(linux+C)
  • 洛谷题目:P8856 [POI 2002] 火车线路 题解(有一点难)
  • Docker(二):docker常用命令
  • 概率论与统计(不确定性分析)主要应用在什么方面?涉及到具体知识是什么?
  • 如何识别DDoS攻击类型及有效防护?一篇简明指南
  • Git Bash 下使用 SSH 连接出现 “Software caused connection abort” 问题
  • Macos m系列芯片环境下python3安装mysqlclient系列问题
  • 数据需求管理办法有哪些?具体应如何应用?
  • 图神经网络(GNN)基本概念与核心原理
  • 某化工厂运维升级:智和信通运维平台实现工业交换机智能管理
  • Maven 4.0.0 模式-pom.xml配置详解
  • 《AI大模型应知应会100篇》第37篇:Agent框架入门:让AI具备自主行动能力
  • 数字巴别塔:全栈多模态开发框架如何用自然语言重构软件生产关系?
  • Unity 和 Unreal Engine(UE) 两大主流游戏引擎的核心使用方法
  • 回顾|Apache Cloudberry™ (Incubating) Meetup·2025 杭州站
  • MyBatis 类型处理器(TypeHandler)注册与映射机制:JsonListTypeHandler和JsonListTypeHandler注册时机
  • 174页Deepseek大模型在银行系统的部署方案
  • 一、I/O的相关概念
  • Spark RDD行动算子与共享变量实战:从数据聚合到分布式通信
  • 基于SpringBoot+PostgreSQL+ROS Java库机器人数据可视化管理系统
  • 热红外遥感在火情监测中有什么作用?
  • 深入Java JVM常见问题及解决方案
  • Java位运算符大全
  • 亚组风险比分析与可视化
  • OceanBase单机重启和配置修改
  • 再学GPIO(一)
  • 汽车制造行业如何在数字化转型中抓住机遇?
  • springboot不连接数据库启动(原先连接了mysql数据库)