Linux: Как я узнаю, был ли файл обновлен другим процессом?

Библиотека Underscore.js определяет его в методе isFunction следующим образом (что, как предполагают комментарии, может исправить некоторые ошибки браузера)

typeof obj == 'function' || false

http://underscorejs.org/docs/underscore .html # раздел-143

5
задан 3 July 2009 в 06:02
поделиться

3 ответа

Джон упомянул два основных маршрута, которые вы можете использовать для просмотра файлов в системах Unix / Linux: уведомление и опрос.

Уведомление - это когда сама система (обычно ядро) запускается сообщение для зарегистрированных приложений при каждом обращении к файлу или записи в него. Этот подход требует совместимой системы и может быть недоступен на старых машинах.

Основной реализацией уведомления в Linux является inotify , который встроен в ядра 2.6.13 и более поздних версий и может быть исправлен в версии 2.6. .12 и ранее. Есть хорошее руководство IBM по использованию inotify, а также базовый набор инструментов и библиотека C для доступа к inotify.

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

Стандартной реализации этого нет, так как это написано на уровне программы, а не на уровне системы, хотя существует системный вызов poll и, кажется, делает что-то полезное для этой цели (на странице руководства написано, что это похоже на select , и он ждет, пока событие не станет доступным в файловом дескрипторе). Вы также можете использовать более простой подход с помощью stat и проводить проверку самостоятельно.

s подобен select , и он ожидает, пока событие не станет доступным в файловом дескрипторе). Вы также можете использовать более простой подход с помощью stat и проводить проверку самостоятельно.

s подобен select , и он ожидает, пока событие не станет доступным в файловом дескрипторе). Вы также можете использовать более простой подход с помощью stat и проводить проверку самостоятельно.

6
ответ дан 13 December 2019 в 05:41
поделиться

Если вам нужно что-то более портативное, чем inotify, которое является Linux-ism, посмотрите на File Alteration Monitor , который является более старой и более переносимой технологией, но может быть менее производительный. С другой стороны, он делает что-то полезное с файловыми системами, смонтированными по NFS, что в зависимости от вашего приложения может быть важным.

0
ответ дан 13 December 2019 в 05:41
поделиться

Вы ищете что-то вроде inotify ?

В качестве альтернативы вы можете опросить файл, используя stat .

6
ответ дан 13 December 2019 в 05:41
поделиться
Другие вопросы по тегам:

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