关闭使用 os.fdopen 打开的文件是否会关闭操作系统级 fd?
我正在使用 tempfile.mkstemp()
创建一个临时文件。它返回一个操作系统级的 fd 以及文件的路径。我想要 os.fdopen() 操作系统级文件描述符来写入它。如果我随后关闭 os.fdopen() 返回的文件,操作系统级文件描述符是否会被关闭,或者我是否必须显式地 os.close() 来关闭它?文档似乎没有明确说明发生了什么。
I'm making a temporary file with tempfile.mkstemp()
. It returns an os-level fd along with the path to the file. I want to os.fdopen()
the os-level file descriptor to write to it. If I then close the file that os.fdopen()
returned, will the os-level file descriptor be closed, or do I have to os.close()
it explicitly? The docs don't seem to say what happens explicitly.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我很确定 fd 将被关闭。如果你不想这样,你可以先复制它。当然,您始终可以轻松地对此进行测试。
测试是这样的:
这表明当文件对象关闭时,底层文件描述符也被关闭。
I'm pretty sure the fd will be closed. If you don't want that you can dup it first. Of course you can always test this easily enough.
Test is like this:
Which shows that the underlying file descriptor is closed when the file object is closed.