Linux上的多线程文件区域锁定
关于fcntl的Linux手册页说明如下: 除了被一个显式的F_UNLCK移除外,当进程终止或关闭任何引用锁所在文件的文件描述符时,记录锁也会自动释放。这是不好的:这意味着当库函数出于某种原因决定打开、读取和关闭文件(如/etc/passwd或/etc/mtab)时,进程可能会丢失对该文件的锁定 我的情况:我的文件是逐渐编写的,随着内容的添加,一些索引表也在更新。同时,可以读取现有内容。所以我需要一个细粒度的文件锁。写入文件的组件可能位于同一进程或单独的进程中,但它们知道并发使用,因此建议锁定是可以的。该实现是来自Windows的端口,其中使用了LockFileEx 这种“糟糕”的情况是否有可能改善?同时,如何在一个进程内实现可控的文件锁定?当然,我希望避免自己实现每个文件区域的锁定寄存器。对文件保留一个共享句柄,该句柄可以引导所有访问,但需要进行重大的体系结构更改Linux上的多线程文件区域锁定,linux,file,locking,Linux,File,Locking,关于fcntl的Linux手册页说明如下: 除了被一个显式的F_UNLCK移除外,当进程终止或关闭任何引用锁所在文件的文件描述符时,记录锁也会自动释放。这是不好的:这意味着当库函数出于某种原因决定打开、读取和关闭文件(如/etc/passwd或/etc/mtab)时,进程可能会丢失对该文件的锁定 我的情况:我的文件是逐渐编写的,随着内容的添加,一些索引表也在更新。同时,可以读取现有内容。所以我需要一个细粒度的文件锁。写入文件的组件可能位于同一进程或单独的进程中,但它们知道并发使用,因此建议锁定是