我正在寻找一种可移植的方式(linux和Windows),只能通过1个进程修改文件,而不能修改C / C ++中的其他文件。
完整的要求是我想保留一个只能通过1个正在运行的进程修改的文件,因为其他文件应该只能读取它。
难点在于此过程使用供应商库,该库将在其生命周期内(数十秒)多次fopen / fclose该文件。
由于
答案 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;
}
}