大多数 IO 函数(fopen
、fread
等)在系统遇到错误或传递的参数无效(fseek
为 {{ 1}}、SEEK_SET
或 SEEK_CUR
),但它们也可能由于程序员无法控制的原因而失败。检查是否成功很乏味,而且可能有时是不必要的。是否有任何情况下,即使在某些情况下可能会失败,函数也不会失败?比如SEEK_END
以只读模式打开一个文件,文件指针是由fclose
新返回的?我什么时候不必担心 IO 功能失败?这些是这种情况吗?
文件以读取模式打开
文件指针由 fopen
返回并进行空检查
读取操作
还有哪些情况?
我不明白为什么 fopen
会在以 READ 模式打开的文件上失败,因为不会有任何缓冲区写入文件,所有需要发生的事情就是释放内存,而 {{ 1}} 不会失败,所以 fclose
也不应该失败,这个假设是否正确?
我也应该避免 free
因为它不能表示错误吗?