gpt4 book ai didi

c++ - 在 linux 中使用 c/c++ 锁定文件

转载 作者:IT王子 更新时间:2023-10-29 00:08:36 37 4
gpt4 key购买 nike

我想知道您是否可以:在 Linux 中仅锁定文件中的一行或单个字符,而文件的其余部分应保持可供其他进程访问?我收到了一个关于在 linux 下使用 c/c++ 模拟文件事务的任务。请给我一个答案,如果这个答案是肯定的,请给我一些链接,我可以从中查看如何完成此任务。

谢谢,马迪米凯尔

最佳答案

fcntl() 是一个可供选择的 API,因为它最少损坏并且是 POSIX。它是唯一可以跨 NFS 工作的。也就是说,这也是一场彻底的灾难,因为锁绑定(bind)到进程,而不是文件描述符。这意味着如果你锁定一个文件然后其他线程或一些库函数锁定/解锁它,你的锁也会被打破。此外,您不能使用文件系统锁来保护同一进程的两个线程相互干扰。此外,您不应在多个用户可以访问的文件上使用文件锁,因为这会有效地让用户卡住彼此的进程。

总而言之:Unix 上的文件锁定带来的问题多于解决的问题。在使用它之前,您需要真正确保您完全理解语义。

关于c++ - 在 linux 中使用 c/c++ 锁定文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2057784/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com