c语言中fopen若不容fclose关掉 默认什么时候关掉

是在这个函数结束时吗??
2025-03-21 21:55:39
推荐回答(2个)
回答(1):

请我吃饭我V恩我V口我看V不怕

回答(2):

这个是和语言实现相关的。不过几乎所有的平台上这些函数的表层行为都是一致的(标准也要求这么做),因为实现很近似——用通常对程序员而言不可见的全局文件缓冲区保存文件信息。由于是全局的,和具体在哪一个函数中调用没有关联,因此函数结束也不会引起文件打开状态的改变,也就是说要关闭文件的话需要手动添加fclose的代码,若没有写,那么调用(不管是直接还是间接地)到fopen以后对应文件就处于打开状态。所以只要后面没有用到这个文件,LZ立刻用fclose关闭是正确的做法。
如果到进程结束前也没有显式地关闭文件,系统会对打开的文件缓冲区进行清理,以维护系统本身的稳定性。一般的PC中,程序在程序退出时由操作系统完成这个工作。在打开文件、使用结束后应该尽可能明确地关闭,不要把这个任务推卸给系统;这样的资源管理方式是合理的,不容易造成资源耗尽。
===
[原创回答团]