stat st_mode возвращает 0600 для/proc/1/task/1/fd/4

#c #dart #stat

#c #dart #статистика

Вопрос:

Я работаю над ошибкой в dart, которая приводит к ее прерыванию при чтении списка каталогов, включая каталог /proc в Linux.

https://github.com/dart-lang/sdk/issues/43176

../../runtime/bin/directory_linux.cc: 204: ошибка: неожиданный st_mode: 384

Я пытаюсь понять возврат из команды stat:

 /proc/1/task/1/fd/4
st_mode 384 (octal 0600)
ino 11676 uid 0 gid 0 4
  

Если я правильно понимаю, верхние биты должны указывать тип файла.

Как я должен правильно интерпретировать тип файла в этом случае?

Комментарии:

1. Вы имеете в виду stat команду или функцию C? Если вы имеете в виду stat функцию, то просто прочитайте справочную страницу статистики . В нем описывается, как анализировать st_mode биты. Если это не так, пожалуйста, предоставьте более подробную информацию в вашем вопросе о фактической проблеме.

2. man7.org/linux/man-pages/man7/inode.7.html

3. @barmar этого нет в Linux ..

4. Я только что попробовал stat .bashrc , и он сказал Access: (0644/-rw-r--r--)

5. Кажется, что stat(1) не отображаются биты, соответствующие типу устройства. stat /dev/tty говорит Access: (0666/crw-rw-rw-)