我想了解如果在执行closedir()
之后不执行opendir()
会发生什么,如果继续执行opendir()
会发生什么?
我试图在我的c程序中连续执行opendir()
,但是似乎没有任何影响,当我这样做时,内部会不会有内存泄漏?
编辑:
我知道我们实际上需要做closedir(),但是内部想了解会发生什么?
最佳答案
如果执行此操作,您将得到的是资源泄漏,这可能是进程的内存空间中的内存泄漏,并且肯定是整个系统中的一种内存泄漏(直到您的进程的生命周期结束,在这种情况下,它就是资源控股关闭)。在某些时候,您将超出每个进程或整个系统范围内对打开文件描述符或管理打开目录所需的其他资源的限制,并且除非您关闭某些目录,否则其他尝试打开目录(以及可能的文件)的尝试也会失败。
这是一个固有的限制,而不是人为的限制,因为每个打开的目录句柄都带有某种状态:与之关联的目录,迭代器的当前位置是什么,等等。保持状态固有地会消耗某种内存。
关于c - 如果在C中的opendir()之后没有完成closeir()怎么办?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49987105/