打开文件说明锁定混乱

问题描述 投票:0回答:1

如 - https://www.gnu.org/software/libc/manual/html_node/Open-File-Description-Locks.html#Open-File-Description-Locks

fcntl(F_OFD_SETLK)
锁定打开的文件表条目(通常由
open()
获得)。容易理解。

但是在下面的例子中:

https://www.gnu.org/software/libc/manual/html_node/Open-File-Description-Locks-Example.html#Open-File-Description-Locks-Example.

在其示例进程中,每个线程都调用

open()
,因此每个文件描述符应该指向不同的打开文件表条目。

然后在每个线程中执行

fcntl (fd, F_OFD_SETLKW, &lck)
只是在不同的打开文件表条目上获得锁定,这意味着这种锁定是完全错误的。

但是我在 Ubuntu 上测试过,由于某种原因它可以工作。我错过了什么?

multithreading linux-kernel kernel locking flock
1个回答
0
投票

老问题但是:多个文件描述符可以指向同一个打开的文件描述。在这种情况下,

OFD
样式的调用会在描述本身(因此是不可移植的,因为它是 Linux 概念)而不是描述符上设置咨询锁。细微差别。

© www.soinside.com 2019 - 2024. All rights reserved.