table of contents
proc_pid_fdinfo(5) | File Formats Manual | proc_pid_fdinfo(5) |
ИМЯ¶
/proc/pid/fdinfo/ - information about file descriptors
ОПИСАНИЕ¶
- /proc/pid/fdinfo/ (начиная с Linux 2.6.22)
- Этот подкаталог содержит один элемент на каждый файл, который открыл процесс, именем файла будет номер его файлового дескриптора. Файлы в этом каталоге доступны на чтение только владельцу процесса. Содержимое каждого файла может быть прочитано для получения информации о соответствующем файловом дескрипторе. Содержимое зависит от типа файла, на который ссылается соответствующий файловый дескриптор.
- Для обычных файлов и каталогов содержимым будет, что-то типа:
-
$ cat /proc/12015/fdinfo/4 pos: 1000 flags: 01002002 mnt_id: 21
- Поля:
- pos
- Это десятичное число отражает смещение файла.
- flags
- Это восьмеричное число отражает режим доступа к файлу и флаги состояния файла (смотрите open(2)). Если установлен флаг файлового дескриптора close-on-exec, то flags также содержат значение O_CLOEXEC.
- До Linux 3.1 в этом поле некорректно показывалось значение O_CLOEXEC верное на момент открытия файла, а не текущее значение флага close-on-exec.
- mnt_id
- This field, present since Linux 3.15, is the ID of the mount containing this file. See the description of /proc/pid/mountinfo.
- Для файловых дескрипторов eventfd (смотрите eventfd(2)) мы увидим (начиная с Linux 3.8) следующие поля:
-
pos: 0 flags: 02 mnt_id: 10 eventfd-count: 40
- В eventfd-count содержится текущее значение счётчика eventfd counter (в виде шестнадцатеричного числа).
- Для файловых дескрипторов epoll (смотрите epoll(7)) мы увидим (начиная с Linux 3.8) следующие поля:
-
pos: 0 flags: 02 mnt_id: 10 tfd: 9 events: 19 data: 74253d2500000009 tfd: 7 events: 19 data: 74253d2500000007
- Каждая строка, начинающаяся с tfd, описывает один из файловых дескрипторов, который отслеживается через файловый дескриптор epoll (подробности смотрите в epoll_ctl(2)). Поле tfd содержит номер файлового дескриптора. Поле events представляет собой шестнадцатеричную маску событий, которые отслеживаются для этого файлового дескриптора. Поле data содержит данные, связанные с этим файловым дескриптором.
- Для файловых дескрипторов signalfd (смотрите signalfd(2)) мы увидим (начиная с Linux 3.8) следующие поля:
-
pos: 0 flags: 02 mnt_id: 10 sigmask: 0000000000000006
- В sigmask содержится шестнадцатеричная маска сигналов, которые принимаются через этот файловый дескриптор signalfd (в этом примере биты 2 и 3 установлены, что соответствует сигналам SIGINT и SIGQUIT; смотрите signal(7)).
- Для файловых дескрипторов inotify (смотрите inotify(7)) мы увидим (начиная с Linux 3.8) следующие поля:
-
pos: 0 flags: 00 mnt_id: 11 inotify wd:2 ino:7ef82a sdev:800001 mask:800afff ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:2af87e00220ffd73 inotify wd:1 ino:192627 sdev:800001 mask:800afff ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:27261900802dfd73
- Каждая из строк, начинающаяся с «inotify», содержит информацию об одном отслеживаемом файле или каталоге. Поля в этой строке:
- Если ядро собрано с поддержкой exportfs, то путь целевого файла представляется в виде описателя (handle) файла, выраженного тремя шестнадцатеричными полями: fhandle-bytes, fhandle-type и f_handle.
- Для файловых дескрипторов fanotify (смотрите fanotify(7)) мы увидим (начиная с Linux 3.8) следующие поля:
-
pos: 0 flags: 02 mnt_id: 11 fanotify flags:0 event-flags:88002 fanotify ino:19264f sdev:800001 mflags:0 mask:1 ignored_mask:0 fhandle-bytes:8 fhandle-type:1 f_handle:4f261900a82dfd73
- В четвёртой строке содержится информация, определяющая когда была создана с помощью fanotify_init(2) группа fanotify:
- flags
- Аргумент flags, переданный fanotify_init(2) (шестнадцатеричное число).
- event-flags
- Аргумент event_f_flags, переданный fanotify_init(2) (шестнадцатеричное число).
- В каждой дополнительной строке файла содержится информация об одной из меток в группе fanotify. Большинство полей аналогичны с inotify, за исключением:
- mflags
- Флаги, связанные с меткой (шестнадцатеричное число).
- mask
- Маска событий, связанная с этой меткой (шестнадцатеричное число).
- ignored_mask
- Маска событий, которые игнорируются для этой метки (шестнадцатеричное число).
- Подробную информацию об этих полях смотрите в fanotify_mark(2).
- Для файловых дескрипторов timerfd (смотрите timerfd(2)) мы увидим (начиная с Linux 3.17) следующие поля:
-
pos: 0 flags: 02004002 mnt_id: 13 clockid: 0 ticks: 0 settime flags: 03 it_value: (7695568592, 640020877) it_interval: (0, 0)
- clockid
- Числовое значение идентификатора часов (соответствует одной из констант CLOCK_*, определённых в <time.h>), используемое для отметки действия таймера (в этом примере 0 — CLOCK_REALTIME).
- ticks
- Количество раз прошедших окончаний таймера (т. е., значение, которое вернул бы для него вызов read(2)).
- settime flags
- В этом поле перечислены флаги в восьмеричном виде (в этом примере установлены TFD_TIMER_ABSTIMEи TFD_TIMER_CANCEL_ON_SET), с которым был запущен timerfd последний раз (смотрите timerfd_settime(2)).
- it_value
- В этом поле содержит количество времени до следующего истечения таймера, выраженное в секундах и наносекундах. Это всегда относительное значение, независимо от флага создания таймера TFD_TIMER_ABSTIME.
- it_interval
- В этом поле содержится интервал таймера, выраженный в секундах и наносекундах (поля it_value и it_interval содержат значения, которые вернул бы вызов timerfd_gettime(2) для этого файлового дескриптора).
СМОТРИТЕ ТАКЖЕ¶
ПЕРЕВОД¶
Русский перевод этой страницы руководства разработал Alexey, Azamat Hackimov <azamat.hackimov@gmail.com>, kogamatranslator49 <r.podarov@yandex.ru>, Darima Kogan <silverdk99@gmail.com>, Max Is <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru> и Иван Павлов <pavia00@gmail.com>
Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику по его адресу электронной почты или по адресу списка рассылки русских переводчиков.
2 мая 2024 г. | Linux man-pages (unreleased) |