Есть ли способ проверить, используется ли файл в C / C ++? Или я должен ВСЕГДА реализовать блокировку / семафор, чтобы предотвратить одновременный доступ к любому файлу несколькими потоками / процессами?
Если мы рассмотрим Linux и следующий сценарий: я хочу передать порциями содержимое файла, хранящегося в устройстве A, на другое устройство B посредством связи RS-232, используя предопределенную среду связи. Когда приходит запрос на эту передачу, я хочу убедиться, что файл НЕ используется каким-либо процессом в устройстве A, прежде чем отправлять ответ «Готов к передаче: ОК», после чего я начну читать и передавать данные порциями.
Есть ли способ проверить файл, если он уже используется, без выполнения команды fopen / fclose для указанного файла?
на самом деле
fopen();
это лучший способ узнать это.
Выполните fopen () на принимающей стороне, если она прошла успешно, отправьте сообщение «OK to receive».
Других решений пока нет …