fdopen()会导致内存泄漏吗?

时间:2020-03-05 18:55:11  来源:igfitidea点击:

我使用fdopen将流与打开的文件关联。

当我close()文件时,流也会自动解除关联,并且所有流内存都返回给OS,还是我需要了解fdopen文件并以特定方式关闭它?

-亚当

解决方案

回答

内核管理这些资源,除了close调用,我们无法控制它们,它可以在需要时释放内存(不晚于进程终止)。

/艾伦

回答

close()是系统调用。它将关闭内核中的文件描述符,但不会释放libc中的FILE指针和资源。我们应该改为在FILE指针上使用fclose(),这还将确保关闭文件描述符。