gpt4 book ai didi

C - 是否有必要检查 freopen 的返回值?

转载 作者:太空宇宙 更新时间:2023-11-04 05:12:33 25 4
gpt4 key购买 nike

freopen 的签名是FILE * freopen (const char * filename, const char * mode, FILE * stream)

根据文档,返回值与 stream 设置的相同。所以,我的代码已经检查了stream != 0,我还需要检查返回值吗? stream == 0 怎么可能 retval != 0?如果我不需要检查两者,为什么 gcc 在我不检查 retval 时会给我警告?

为了安静 gcc,可以简单地做:stream = freopen(filename, mode, stream);如果 (!stream) {...})?

最佳答案

如果失败,它不会神奇地设置原始流变量(它没有引用,因为参数是 FILE * 而不是 FILE **)为 NULL,因此您确实需要检查返回值。

关于C - 是否有必要检查 freopen 的返回值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33716013/

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