C和Python之间的文件锁(flock)兼容性问题

5
1个回答

5

Python的fcntl库是直接建立在标准C库之上的;因此,在Linux上,fcntl.flock()直接使用flock C函数。

请参见fcntl模块的源代码

#ifdef HAVE_FLOCK
    Py_BEGIN_ALLOW_THREADS
    ret = flock(fd, code);
    Py_END_ALLOW_THREADS

这在fcntl.flock()文档中也有明确说明:

fcntl.flock(fd, op)
对文件描述符fd(提供fileno()方法的文件对象也被接受)执行锁定操作op。详见Unix手册flock(2)。(在某些系统上,此函数是使用fcntl()模拟的。)

所以,是的,它会起作用。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接