实现文件锁以使副本成为文件

时间:2010-02-09 13:58:14

标签: c++ c linux gcc

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

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

我如何检查何时检查锁以及何时放锁?我无法找到包含示例的好资源。我试过从“Beej的IPC指南”中读到它,但它没有一个完整的例子。

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

1 个答案:

答案 0 :(得分:5)

在StackOverflow上查看我的回答How can I copy a file on unix using C。它使用基本锁定并使用lockf阅读 caf 提到的评论,有一种更强大的方法可以使用fcntl执行此操作。在GNU的网站here上有一个关于此的详细文档。以下是opengroup上的代码,演示了使用fcntl进行锁定。

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