c++ - 错误(文件)== 32

标签 c++ c evc4

有时,当我像这样打开一个文件时:

FILE *file = fopen(fname, "wb");
if(!file) printf("Error code: %d\n",ferror(file));

我得到的结果是 32。这是什么意思?具体来说,对于 eMbedded Visual C++ 4.0

此外,eVC 似乎不支持 perror/errno :(

最佳答案

您以错误的方式使用了 ferror():它仅适用于有效(非空)文件句柄。将 NULL 传递给它(在 fopen() 失败的情况下)会导致 UB,这在您的情况下通过打印随机值来体现(不捕获 NULL 指针访问表明底层平台没有内存保护)。

关于c++ - 错误(文件)== 32,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/475652/

相关文章:

c++ - 关于C++中的随机数

c - libwebsocket 发送负载限制

c - 抗碎片微 Controller 堆算法

c - 该程序的 O/P 是什么以及它是如何发生的

windows-ce - 将 Windows-CE 应用程序移植到 Windows 桌面

c++ - boost::program_options 配置文件格式

c++ - select() 系统调用和 bash 转义

c++ - 为什么在调用recv系统调用时会调用sigprocmask?