首页 文章

stdio.h函数fopen()在“w”模式下的错误情况

提问于
浏览
0

我已经在写入模式下尝试使用fopen()来尝试查看它是否返回NULL . 我尝试打开多个同名文件,并输入无效的文件名 . 显然,fopen()并不关心回收的名称,因为它每次只打开一个新文件并覆盖任何现有数据 . 输入无效的文件名只会导致命令行错误 . 我试过的测试用例都没有导致fopen()返回NULL .

这绝不是我在日常编程中遇到的事情,但我始终遵循从不假设文件将始终成功打开的理念 . 因此,无论我对文件做什么,我总是对每个文件指针进行错误检查 .

但是为了充分了解文件I / O,我发现自己好奇:fopen()在“w”模式下会返回NULL的场景是什么(如果有的话)?

1 回答

  • 1

    尝试在不存在的目录中打开文件,或者在没有权限覆盖的文件中打开文件,或者在文件名中使用无效字符的文件 . 在这些情况下,你会很快得到NULL .

    顺便说一句,你的理念很好,检查任何可能失败的电话通常都是个好主意 . 当然,规则有例外,我不会检查每个 printf 调用的返回值,但是's usually because it'不太可能在以后的程序中咬我 .

相关问题