gpt4 book ai didi

c - 问题测试fclose返回值

转载 作者:太空宇宙 更新时间:2023-11-04 01:00:29 24 4
gpt4 key购买 nike

为了有一个更清晰的方法来测试特定的函数,我想在 fclose 函数上实现测试。但是我在尝试写入和重新读取位图图像时遇到了问题。

事实上,我在用这种方式测试 fclose 时出现了一个错误:

assert(fclose(bmp_image) != EOF);

虽然下面的代码没有给出任何错误:

int closing_ok = fclose(bmp_image);
assert(closing_ok != EOF);

通过更多测试,我发现这种差异只出现在写入模式中,而不会出现在读取模式中。出现这样的差异是否正常?有人可以向我解释这种差异吗?

编辑:我试图通过该代码获取错误含义:

if(fclose(output_file) != EOF) {
printf("ERROR: %s\n", strerror(errno));
}

不过这里也没问题,没有报错。

最佳答案

assert 是一个宏,当使用 NDEBUG 编译时,它被替换为 no op。粗略地说,如果您构建可执行文件的发布版本,则从代码中删除对 fclose 的整个调用。

这可能是导致文件无法正常关闭的一个可能原因。

关于c - 问题测试fclose返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41850570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com