c - C fopen errno 未设置
问题描述
我正在使用 IAR 嵌入式工作台进行编程。我有支持 microSD 存储卡的评估板。我拥有所有库,并且应用程序正在运行。我试图访问 sd 卡中不存在的文件来模拟失败并捕获任何文件打开错误。
#include <errno.h>
#include <string.h>
int IsFileExists(const char* filename) {
errno = 0;
FILE* fptr = fopen(filename, "r");
printf("Error:%d %s",errno,strerror(errno))
if (fptr != NULL) {
fclose(fptr);
return 1;
}
return 0;
}
fptr 为 NULL,errno 始终为 0。为什么 errno 未设置为非零值?
谢谢!
解决方案
C99-7.19.5.3(8) 没有说明 fopen() 返回时的 errno。设置 errno 需要其他一些函数(例如 C99-7.19.9.3 fsetpos())。所以fopen似乎不需要它。
您使用的是什么操作系统?
推荐阅读
- function - 如何在引用特定范围的同时创建一个函数来提取 Google 表格中的新富文本链接?
- javascript - 将 Stripe.js 作为 ES 模块导入 Vue
- nginx - 如何配置 Nginx 从两个不同的文件夹提供桌面版和移动版
- stata - 创建虚拟变量的问题
- xml - 根据属性名 xmlstarlet 更新标签值
- google-cloud-sql - 谷歌云运行 quarkus 谷歌云 sql
- c# - EmguCV、Xamarin Forms、C#、ALPR(智能手机摄像头的车牌识别)
- automation - 如何在 Linx 上查看源代码管理更改
- excel - 数组输出消失
- android - Flutter IAP 订阅