为文件复制开发一个C程序,其中两个进程协同工作以完成任务: 父进程从命令行接收源文件名和目标文件名。它以读模式打开源文件。
在两个进程中对源文件使用共享锁。在目标文件上使用独占锁定。以256字节块进行读/写操作。您应该一次锁定尽可能小的文件部分。
我如何检查何时检查锁以及何时放锁?我无法找到包含示例的好资源。我试过从“Beej的IPC指南”中读到它,但它没有一个完整的例子。
我知道我必须使用fcntl()但是如何以及何时? 请某人给出程序的伪代码..
答案 0 :(得分:5)
在StackOverflow上查看我的回答How can I copy a file on unix using C。它使用基本锁定并使用lockf
阅读 caf 提到的评论,有一种更强大的方法可以使用fcntl
执行此操作。在GNU的网站here上有一个关于此的详细文档。以下是opengroup上的代码,演示了使用fcntl
进行锁定。
希望这有帮助, 最好的祝福, 汤姆。