【问题标题】:Implementing file locks to make a copy a file实现文件锁以复制文件
【发布时间】:2011-01-14 19:58:02
【问题描述】:

文件复制开发一个 C 程序,其中两个进程协同工作以完成任务: 父进程从命令行接收源文件名和目标文件名。它以读取模式打开源文件。

在两个进程中对源文件使用共享锁。对目标文件使用排他锁。在 256 字节块中执行读/写操作。您应该一次锁定文件的尽可能小部分。

我怎么知道什么时候检查锁和什么时候放锁?我找不到包含示例的好资源。我尝试从“Beej 的 IPC 指南”中阅读它,但它没有完整的示例。

我知道我必须使用 fcntl() 但如何以及何时使用? 请有人给出程序的伪代码..

【问题讨论】:

    标签: c++ c linux gcc


    【解决方案1】:

    在 StackOverflow 上查看我的回答 How can I copy a file on unix using C。它使用基本锁定并通过使用lockf 读取caf 提到的cmets,使用fcntl 有一种更强大的方法可以做到这一点。在 GNU 的网站 here 上有一个详细的文档。这是opengroup 上的代码,演示了使用fcntl 进行锁定。

    希望这会有所帮助, 最好的祝福, 汤姆。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-02-13
      • 1970-01-01
      • 2013-12-26
      • 2015-07-18
      • 1970-01-01
      • 1970-01-01
      • 2012-07-24
      • 1970-01-01
      相关资源
      最近更新 更多