Наутилус вызывает статистику / файл во всех записях каталога
Я пишу статью, и мне нужно подтвердить кое-что, что для меня довольно очевидно, но я не видел код, который мог бы убедительно сказать мне, что именно так он и работает.
Когда я открываю папку в Nautilus, она вызывает stat
системный вызов и file
команда на каждый обычный файл в этой папке? Мне также интересно, как он генерирует миниатюры, но это побочный квест.
1 ответ
Наутилус написан на C. Я не нашел никаких ссылок на stat
syscall в исходном коде, поэтому не могу сказать со 100% уверенностью, что он его использует или не использует.
Mime-тип файлов получается через nautilus_file_get_mime_type
функция, на которую часто ссылаются в нескольких файлах, таких как nautilus-mime-actions.c
, nautilus-properties-window.c
, nautilus-window-slots.c
и другие.
Однако я не смог найти определение этой функции, только назначения:
$ grep -iR 'file_get_mime_type'
nautilus-canvas-view-container.c: mime_type = nautilus_file_get_mime_type (file);
nautilus-mime-actions.c: mime_type = nautilus_file_get_mime_type (file);
nautilus-mime-actions.c: mime_type_a = nautilus_file_get_mime_type (file_a);
nautilus-mime-actions.c: mime_type_b = nautilus_file_get_mime_type (file_b);
nautilus-mime-actions.c: mime_type = nautilus_file_get_mime_type (file);
nautilus-mime-actions.c: char *mime_type = nautilus_file_get_mime_type (parameters->file);
nautilus-mime-actions.c: mime_type = nautilus_file_get_mime_type (parameters_install->file);
nautilus-mime-actions.c: mime_type = nautilus_file_get_mime_type (parameters_install->file);
nautilus-mime-actions.c: mime_type = nautilus_file_get_mime_type (file);
nautilus-properties-window.c: ret = g_list_append (ret, nautilus_file_get_mime_type (NAUTILUS_FILE (l->data)));
nautilus-properties-window.c: mime_type = nautilus_file_get_mime_type (file);
nautilus-properties-window.c: mime_type = nautilus_file_get_mime_type (target_file);
nautilus-window-slot.c: mimetype = nautilus_file_get_mime_type (file);