Главная » 2016 » Март » 28 » sync()
12:10
sync()
Не такой оптимальный, но более масштабный консервативный системный вызовsync() обеспечивает синхронизацию всех буферов с диском:#include <unistd.h>void sync (void):У этой функции нет параметров, и она не возвращает никакое значение. Онавсегда завершается успешно, и возврат значения указывает на то, что все буферы— как с данными, так и с метаданными — были гарантированно записаны надиск1.Стандарты не требуют, чтобы вызов sync О ожидал, пока все буферы будутсброшены на диск, чтобы возвратить значение; они требуют только, чтобы вызовинициировал процесс фиксации всех буферов на диске. По этой причинечасто рекомендуется выполнять синхронизацию несколько раз, чтобы гарантировать,что все данные успешно оказались на диске. Linux, однако, дожидаетсяфиксации буферов. Таким образом, одного вызова sync О достаточно.Единственное реальное применение sync О можно найти в реализации утилитыsync(8). Для фиксации на диске данных для конкретных дескрипторовфайлов в приложениях следует использовать fsyncO и fdatasyncO. Обратитевнимание, что в загруженной системе для завершения работы sync О может потребоватьсянесколько минут.
Просмотров: 461 | Добавил: admin | Рейтинг: 0.0/0
Всего комментариев: 0
avatar