2010-02-09 25 views
1

開發一個C程序,其中兩個進程一起工作以完成任務: 父進程從命令行接收源文件名和目標文件名。它以讀模式打開源文件。執行文件鎖定以複製文件

在兩個進程中的源文件上使用共享鎖。在目標文件上使用排它鎖。在256字節塊中進行讀/寫操作。您應該一次鎖定文件儘可能小的一部分。

我該如何瞭解何時檢查鎖和何時放置鎖?我無法找到包含示例的好資源。我試着從「Beej的IPC指南」中讀到它,但它沒有一個完整的例子。

我知道我必須使用fcntl()但是如何以及何時? 請有人給出該程序的僞代碼。

回答

5

請參閱我的回答How can I copy a file on unix using C StackOverflow。它使用一個基本的鎖定,並閱讀咖啡店已經提到通過使用lockf,有一個更強大的方法來做到這一點使用fcntl。在GNU的網站here上有詳細的文檔。以下是opengroup上的代碼,演示fcntl用於鎖定的用法。

希望這會有所幫助, 最好的問候, 湯姆。