便携式方式(linux和Windows)只能通过1个进程修改文件,而不能修改C / C ++中的其他文件

时间:2014-07-01 07:16:16

标签: c++ c linux winapi

我正在寻找一种可移植的方式(linux和Windows),只能通过1个进程修改文件,而不能修改C / C ++中的其他文件。

完整的要求是我想保留一个只能通过1个正在运行的进程修改的文件,因为其他文件应该只能读取它。

难点在于此过程使用供应商库,该库将在其生命周期内(数十秒)多次fopen / fclose该文件。

由于

1 个答案:

答案 0 :(得分:1)

您应该使用“进程间通信”

例如,在Windows上,您可以使用以下代码,这样可以确保只有一个进程可以写入此文件。

    int WriteToFile()
    {
         HANDLE _mutex = CreateMutex(NULL, TRUE, L"__File_Write__");
         if(GetLastError() == ERROR_ALREADY_EXISTS) 
         {
             return -1;
         }
         else
         {
             //write to file
             return 0;
         }
    }
相关问题