fdopen()会导致内存泄漏吗?
时间:2020-03-05 18:55:11 来源:igfitidea点击:
我使用fdopen将流与打开的文件关联。
当我close()
文件时,流也会自动解除关联,并且所有流内存都返回给OS,还是我需要了解fdopen文件并以特定方式关闭它?
-亚当
解决方案
回答
内核管理这些资源,除了close调用,我们无法控制它们,它可以在需要时释放内存(不晚于进程终止)。
/艾伦
回答
close()是系统调用。它将关闭内核中的文件描述符,但不会释放libc中的FILE指针和资源。我们应该改为在FILE指针上使用fclose(),这还将确保关闭文件描述符。