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

当我 close() 文件,流是否也会自动解除关联,并且所有流内存都返回到操作系统,或者我是否需要了解 fdopen'd 文件并以特定方式关闭它?

-亚当

有帮助吗?

解决方案

close() 是一个系统调用。它会关闭内核中的文件描述符,但不会释放libc中的FILE指针和资源。您应该在 FILE 指针上使用 fclose(),这也将负责关闭文件描述符。

其他提示

内核管理这些资源,除了关闭调用之外,您无法控制它们,关闭调用可能会在需要时释放内存(不晚于进程终止)。

/艾伦

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top