2017-02-18 27 views
1

Я нашел элемент структуры (имя d_fileno) 'struct dirent' от Gnu C library [dirent.h] .
Я прочитал документацию, но я не понял значения серийного номера файла. Я не нашел удовлетворительного ответа на Google.
Итак, я решил написать программу, чтобы посмотреть, как выглядит серийный номер файла.Какой файл является серийным номером?

Выход

$./fileno .. 
file_serial_number file_name 
[6838726]  [source] 
[6562883]  [..] 
[6838661]  [lstfl] 
[6838718]  [.] 
[6826161]  [research] 
[6838720]  [starcase] 

Итак, в чем смысл этих чисел?

Связанная часть из программы:

... 
while((pDirent = readdir(pDir)) != NULL) 
    { 
     printf("[%li]\t\t [%s]\n",pDirent->d_fileno, pDirent->d_name); 
    } 

    closedir(pDir); 
... 
+1

Термин FSN предназначен быть нейтральным термином, который соответствует некоторому понятию в любой файловой системе, даже в файловых системах, которые не имеют понятия иноды сама по себе. С точки зрения 'struct stat', он соответствует' st_ino' (как ссылается страница, на которую вы ссылаетесь); комбинация 'st_ino' и' st_dev' должна однозначно идентифицировать файл. Обратите внимание, что 'd_fileno' не является стандартным для POSIX; только элемент 'd_name'' struct dirent' задан POSIX (также как указано на странице, на которую вы ссылаетесь). –

ответ

2

Согласно документации:

Файл серийный номер, который отличает этот файл от всех других файлов на одном устройстве.

Вы можете понять это с точки зрения inode номер. Используя номер индексного дескриптора, мы можем обратиться к inode data structure файла, который содержит метаданные о файле, например

  • Размер файла
  • Device ID
  • ID пользователя файла
  • идентификатор группы файл
  • информации и доступ привилегий режима файла для владельца, группы и других
  • флагов защиты файла
  • метки времени, для е Ile создание, изменение и т.д.

inodes

+0

поэтому его адрес из всех других файлов? – metarose

+1

Нет, вы можете использовать этот номер для ссылки на информацию о метаданных файла. – Rishi

+1

@ H.Emre: это уникальный номер, который идентифицирует содержимое файла. Несколько имен могут ссылаться на тот же FSN (inode). –