Вопросы к Поиску с Алисой
Разница между SEEKDATA и SEEKHOLE при работе с большими файлами заключается в том, что первый возвращает расположение следующего сегмента данных, а второй — следующего промежутка. reviewpoint.org manpages.ubuntu.com
SEEK_DATA подгоняет файловое смещение к следующему расположению, большему или равному значению offset, по которому в файле есть данные. manpages.ubuntu.com Если значение offset указывает на данные, то файловое смещение устанавливается в offset. manpages.ubuntu.com
SEEK_HOLE подгоняет файловое смещение к следующему промежутку, большему или равному значению offset. manpages.ubuntu.com Если значение offset указывает в середину промежутка, то файловое смещение устанавливается в offset. manpages.ubuntu.com Если перед offset нет промежутка, то файловое смещение подгоняется к концу файла (это скрытый промежуток, который есть в конце любого файла). manpages.ubuntu.com
Таким образом, SEEKDATA ориентирован на данные, а SEEKHOLE — на промежутки, что важно при работе с разреженно выделенными файлами, где промежутки (последовательности нулей) могут храниться более компактно, чем фактические данные. reviewpoint.org man.archlinux.org