标签: multithreading linux-kernel kernel locking flock
在 - https://www.gnu.org/software/libc/manual/html_node/Open-File-Description-Locks.html#Open-File-Description-Locks
fcntl(F_OFD_SETLK)锁定打开的文件表条目(通常由open()获得)。易于理解。
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)只是锁定不同的打开文件表条目,这意味着这种锁定是完全错误的。
fcntl (fd, F_OFD_SETLKW, &lck)
但是我在Ubuntu上进行了测试,它的工作原因有些正常。我错过了什么?