fdopen() 会导致内存泄漏吗?
-
09-06-2019 - |
题
我使用 fdopen 将流与打开的文件关联起来。
当我 close()
文件,流是否也会自动解除关联,并且所有流内存都返回到操作系统,或者我是否需要了解 fdopen'd 文件并以特定方式关闭它?
-亚当
解决方案
close()
是一个系统调用。它会关闭内核中的文件描述符,但不会释放libc中的FILE指针和资源。您应该在 FILE 指针上使用 fclose(),这也将负责关闭文件描述符。
其他提示
内核管理这些资源,除了关闭调用之外,您无法控制它们,关闭调用可能会在需要时释放内存(不晚于进程终止)。
/艾伦
不隶属于 StackOverflow