Итак, мне дали это задание на C, в котором я должен воспроизвести команду ls.Все идет хорошо, но у меня есть одна проблема, которую я не могу понять.
При использовании ls -l on / dev вывод дает мне что-то вроде этого:
"ls -l /dev"
...
dr-xr-xr-x 1 root wheel 0 Dec 17 15:55 fd
crw-r--r-- 1 root wheel 13, 0 Dec 17 15:55 fsevents
crw-rw-rw- 1 root wheel 21, 17 Dec 17 15:55 io8log <<notice these lines
cr--r--r-- 1 root wheel 21, 14 Dec 17 15:55 io8logmt <<notice these lines
crw-rw-rw- 1 root wheel 21, 15 Dec 17 22:09 io8logtemp <<notice these lines
crw------- 1 root wheel 6, 0 Dec 17 15:55 klog
...
, но затем:
"/bin/ls -l /dev":
...
dr-xr-xr-x 1 root wheel 0 Dec 17 15:55 fd
crw-r--r-- 1 root wheel 13, 0 Dec 17 15:55 fsevents
crw-rw-rw- 1 root wheel 21, 15 Dec 17 15:55 io8log << see how the minor has changed?
cr--r--r-- 1 root wheel 21, 16 Dec 17 15:55 io8logmt << same here
crw-rw-rw- 1 root wheel 21, 17 Dec 17 22:35 io8logtemp << and here too
crw------- 1 root wheel 6, 0 Dec 17 15:55 klog
...
Почему младший номер изменяетсядля этих трех строк?Разве ls и / bin / ls не одинаковы?Разве ls не является просто «псевдонимом» для / bin / ls или это добавляет / удаляет «опции» для команды?
Кроме того (хотя это не совсем та же проблема), как получаются второстепенные числадля этих файлов выходит в шестнадцатеричном виде?Он даже не совпадает с младшим номером, который я получаю от них
"ls -l /dev":
crw-rw-rw- 1 root wheel 33, 0x00000ac7 Dec 17 15:55 autofs_homedirmounter
crw-rw-rw- 1 root wheel 32, 0x00000ac7 Dec 17 15:55 autofs_notrigger
crw-rw-rw- 1 root wheel 31, 0x00001581 Dec 17 15:55 autofs_nowait
mine :
crw-rw-rw- 1 root wheel 33, 2722 Dec 17 15:55 autofs_homedirmounter
crw-rw-rw- 1 root wheel 32, 2722 Dec 17 15:55 autofs_notrigger
crw-rw-rw- 1 root wheel 31, 5198 Dec 17 15:55 autofs_nowait
Все остальные младшие / старшие номера соответствуют при вызове ls, / bin / ls или моей программы, только эти строки различны.
Если у кого-то есть подсказки, большое спасибо:)
edit: Это результат команды zwol:
/dev/io8log 1500000f
/dev/io8logmt 15000010
/dev/io8logtemp 15000011
/dev/klog 6000000
/dev/autofs 16000000
/dev/autofs_control 22000000
/dev/autofs_homedirmounter 21000ae5
/dev/autofs_notrigger 20000ae5
/dev/autofs_nowait 1f00174b
, когда он вызывается дважды, меняется числодля всех io8 dir и autofs dirs (кроме autofs_control), который, кажется, соответствует поведению ls