НАИМЕНОВАНИЕ
/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»,
содержит
информацию
об одном
отслеживаемом
файле или
каталоге.
Поля в этой
строке:
- wd
- Отслеживаемый
номер
файлового
дескриптора
(десятичное
число).
- ino
- Номер
иноды
целевого
файла
(шестнадцатеричное
число).
- sdev
- Идентификатор
устройства,
содержащего
целевой
файл
(шестнадцатеричное
число).
- mask
- Маска
отслеживаемых
событий
для
целевого
файла
(шестнадцатеричное
число).
- Если ядро
собрано с
поддержкой
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:
- В каждой
дополнительной
строке
файла
содержится
информация
об одной из
меток в
группе 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>
и Kirill Rekhov <krekhov.dev@gmail.com>
Этот
перевод
является
свободной
программной
документацией;
он
распространяется
на
условиях
общедоступной
лицензии GNU (GNU
General Public License - GPL,
https://www.gnu.org/licenses/gpl-3.0.html
версии 3 или
более
поздней) в
отношении
авторского
права, но
БЕЗ
КАКИХ-ЛИБО
ГАРАНТИЙ.
Если вы
обнаружите
какие-либо
ошибки в
переводе
этой
страницы
руководства,
пожалуйста,
сообщите
об этом
разработчику(ам)
по его(их)
адресу(ам)
электронной
почты или
по адресу
списка
рассылки
русских
переводчиков.