gpt4 book ai didi

python - 低级 os.open、os.fdopen 和 friend 的用例?

转载 作者:太空狗 更新时间:2023-10-29 17:33:11 25 4
gpt4 key购买 nike

在 Python 3.2(和其他版本)中,documentation for os.open状态:

This function is intended for low-level I/O. For normal usage, use the built-in function open(), which returns a file object with read() and write() methods (and many more). To wrap a file descriptor in a file object, use fdopen().

for fdopen() :

Return an open file object connected to the file descriptor fd. This is an alias of open() and accepts the same arguments. The only difference is that the first argument of fdopen() must always be an integer.

This comment在关于 io.openos.open 之间区别的问题中(我很清楚这个区别,我总是使用 io.open,从不 os.open) 问:为什么有人会选择 Python 来处理低级 I/O?,但并没有真正得到一个回答。

我的问题与评论问题非常相似:在 Python 中,通过 os.openos.fdopen 进行低级 I/O 的用例是什么, os.close, os.read, etc.? 我曾经认为需要去守护进程,但是I'm not so sure anymore .是否有任何任务只能使用低级 I/O 而不能使用更高级别的包装器来执行?

最佳答案

我在需要用的时候用O_CREAT | O_EXCL以原子方式创建文件,如果文件存在则失败。如果您的测试发现文件不存在,您不能检查文件是否存在然后创建文件,因为这将创建一个竞争条件,文件可以在检查和创建之间的过渡期间创建。

简要查看the link you provided ,我确实相信 pidfile 的创建存在竞争条件。

在 Python 3.3 中,有 a new 'x' mode添加到似乎执行此操作的 open()。不过我还没有尝试过。

关于python - 低级 os.open、os.fdopen 和 friend 的用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14280384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com