C - fcntl在多线程程序中不起作用(不锁定文件)



fcntl使用代码

嗨。我正试图用多个线程访问一个文件,尝试使用记录锁定(fcntl(获取同步。

问题是,fcntl没有锁定文件。

结果

我尝试过:每个线程具有自己的文件描述符/一个文件描述符(全局(,检查了fcntl的参数,但没有找到原因或解决方案。

我写的函数有什么问题吗?或者在多线程中使用fcntl时需要了解一些信息?

fcntl实现进程级锁定。显然,你的所有线程都生活在同一个进程中,所以没有中间锁(或者,换句话说:进程中的所有线程共享相同的锁(。

Linux手册页上写着:

进程中的线程共享锁。换句话说多线程程序不能使用记录锁定来确保线程不会同时访问文件的同一区域。

相关内容

  • 没有找到相关文章

最新更新