【问题标题】:C - Do I need to close files after opening them with system callsC - 使用系统调用打开文件后是否需要关闭文件
【发布时间】:2016-03-20 15:57:21
【问题描述】:

如果我用open("file.txt",O_RDONLY) 打开一个文本文件,我需要用close() 关闭它吗?

愚蠢的问题,我知道,但我不完全确定进程结束是否会打开打开的文件。

【问题讨论】:

  • 收拾好自己的好习惯
  • 旁注 - 在用 C 编写的应用程序代码中,您通常应该使用 fopen 而不是调用 openfopen 是标准的C,使其非常便携——甚至适用于 Windows,而 open 是 POSIX,使其不那么便携。所以open为你提供了更多“异国情调”的能力,比如mmappreadreadv,但代价是放弃了便携性。如果你的代码只调用openreadwritelseekclose,它应该调用fopenfread、@987654340 @、fseekfclose
  • 我知道,但是引用我喜欢的日本漫画,嗨,我是学生!或者用人类的话来说,这是分配的限制 - 使用系统调用而不是库函数来处理来自文件的 i/o。

标签: c unix system-calls


【解决方案1】:

文件将保持打开状态,直到您关闭它或您的进程终止。进程终止将使该进程的文件描述符无效,因此实质上是“关闭”文件。

我总是会在合理的时候明确关闭它们。

【讨论】:

    猜你喜欢
    • 2013-07-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-29
    • 2019-04-14
    • 2011-03-17
    • 2010-12-18
    相关资源
    最近更新 更多