Ошибка в скрипте для проверки (или ожидания )наличия файла в каталоге

Вы можете написать для этого программу.

Используйте open(O_CREAT|O_RDWD), чтобы открыть целевой файл, прочитать все байты и метаданные, чтобы проверить, является ли целевой файл полным, если нет, есть две возможности,

  1. Неполная запись

  2. Другой процесс выполняет ту же программу.

Попытка установить блокировку описания открытого файла для целевого файла.

Сбой означает наличие параллельного процесса, текущий процесс должен существовать.

Успех означает, что последняя запись завершилась со сбоем, вы должны начать сначала или попытаться исправить это, записав в файл.

Также обратите внимание, что вам лучше fsync()после записи в целевой файл, прежде чем закрыть файл и снять блокировку, иначе другой процесс может прочитать не -, а -данные на диске -.

https://www.gnu.org/software/libc/manual/html_node/Open-File-Description-Locks.html

Это важно, чтобы помочь вам отличить параллельно работающую программу от последней аварийно завершенной операции.

0
13.08.2021, 20:13
0 ответов

Теги

Похожие вопросы