rph*_*rph 5 c python linux locking
算法的 python 实现是否可以与标准 C 库一起透明地工作?如果我有两个程序,一个是 Python,另一个是 C,尝试获取单个文件的锁会起作用吗?
快速链接:
Python 的fcntl库直接构建在标准 C 库之上;所以在Linux上直接fcntl.flock()使用flockC函数。
查看该fcntl模块的源代码:
#ifdef HAVE_FLOCK
Py_BEGIN_ALLOW_THREADS
ret = flock(fd, code);
Py_END_ALLOW_THREADS
Run Code Online (Sandbox Code Playgroud)
fcntl.flock()文档中也明确说明了这一点:
fcntl.flock(fd, op)
对文件描述符fdfileno()执行锁定操作 op(也接受提供方法的文件对象)。有关详细信息,请参阅 Unix 手册集群(2)。(在某些系统上,此函数是使用 模拟的fcntl()。)
所以是的,它会起作用。