/proc/pid/fdinfo/ - informacje o deskryptorach pliku
- /proc/pid/fdinfo/ (od Linuksa 2.6.22)
- Jest to podkatalog zawierający po jednym wpisie dla każdego
pliku otwartego przez proces; nazwą tego wpisu jest deskryptor
pliku. Pliki w tym katalogu są odczytywalne tylko dla
właściciela procesu. Zawartość pliku
można odczytać, aby uzyskać informacje o
odpowiadającym mu deskryptorze pliku. Zawartość
zależy od typu pliku odpowiadającego odpowiedniemu
deskryptorowi pliku.
- Dla zwykłych plików i katalogów wygląda to
zwykle tak:
-
$ cat /proc/12015/fdinfo/4
pos: 1000
flags: 01002002
mnt_id: 21
- Występują następujące pola:
- pos
- Jest to liczba dziesiętna pokazująca przesunięcie
pliku.
- flags
- Jest to liczba ósemkowa wyświetlająca tryb
dostępu pliku i flagi statusu pliku (zob. open(2)).
Jeśli ustawiona jest flaga deskryptora pliku close-on-exec, to
flags będzie zawierało również
wartość O_CLOEXEC.
- Przed Linuksem 3.1 to pole nieprawidłowo wyświetlało
ustawienie O_CLOEXEC w trakcie otwierania pliku, zamiast aktualnego
ustawienia flagi close-on-exec.
- mnt_id
- To pole, obecne od Linuksa 3.15 jest identyfikatorem montowania
zawierającego ten plik. Zob. opis
/proc/pid/mountinfo.
- Dla deskryptorów plików eventfd (zob. eventfd(2)),
wyświetlane są (od Linuksa 3.8) następujące
pola:
-
pos: 0
flags: 02
mnt_id: 10
eventfd-count: 40
- eventfd-count jest
bieżącą wartością licznika
eventfd, szesnastkowo.
- Dla deskryptorów plików epoll (zob. epoll(7)),
wyświetlane są (od Linuksa 3.8) następujące
pola:
-
pos: 0
flags: 02
mnt_id: 10
tfd: 9 events: 19 data: 74253d2500000009
tfd: 7 events: 19 data: 74253d2500000007
- Każdy wiersz zaczynający się od tfd opisuje
jeden z deskryptorów pliku monitorowany za
pomocą deskryptora pliku epool (zob. epoll_ctl(2) aby
zapoznać się z niektórymi szczegółami).
Pole tfd jest numerem deskryptora pliku. Pole events jest
szesnastkową maską zdarzeń monitorowanych dla tego
deskryptora pliku. Pole data jest
wartością danych powiązanych z tym
deskryptorem pliku.
- Dla deskryptorów plików signalfd (zob. signalfd(2)),
wyświetlane są (od Linuksa 3.8) następujące
pola:
-
pos: 0
flags: 02
mnt_id: 10
sigmask: 0000000000000006
- sigmask jest
szesnastkową maską sygnałów
akceptowanych poprzez ten deskryptor pliku signalfd (w tym
przykładzie ustawione są bity 2 i 3 odpowiadające
sygnałom SIGINT i SIGQUIT; zob.
signal(7)).
- Dla deskryptorów plików inotify (zob. inotify(7)),
wyświetlane są (od Linuksa 3.8) następujące
pola:
-
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
- Każdy z wierszy zaczynający się od
„inotify” wyświetla informacje o jednym z
monitorowanych plików lub katalogów. W wierszu
występują następujące pola:
- wd
- Numer obserwowanego deskryptora (dziesiętnie). (od ang.
watch descriptor)
- ino
- Numer i-węzła pliku docelowego (szesnastkowo).
- sdev
- ID urządzenia, na którym znajduje się plik docelowy
(szesnastkowo).
- mask
- Maska monitorowanych zdarzeń pliku docelowego (szesnastkowo).
- Jeśli jądro zbudowano z obsługą exportfs,
ścieżka do pliku docelowego jest wyświetlona jako
uchwyt pliku, przez trzy pola szesnastkowe: fhandle-bytes,
fhandle-type i f_handle.
- Dla deskryptorów plików fanotify (zob. fanotify(7)),
wyświetlane są (od Linuksa 3.8) następujące
pola:
-
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
- Czwarty wiersz wyświetla informacje zdefiniowane przy tworzeniu
grupy fanotify poprzez fanotify_init(2):
- Każdy dodatkowy wiersz pokazany w pliku zawiera informacje o jednym
znaku (ang. mark) grupy fanotify. Większość z tych
pól jest takich jak do inotify z wyjątkiem:
- mflags
- Flagi powiązane ze znakiem (wyrażone szesnastkowo).
- mask
- Maski zdarzeń dla tego znaku (wyrażone szesnastkowo).
- ignored_mask
- Maski zdarzeń ignorowanych dla tego znaku (wyrażone
szesnastkowo).
- Więcej informacji o tych polach znajduje się w
podręczniku fanotify_mark(2).
- Dla deskryptorów plików timerfd (zob. timerfd(2)),
wyświetlane są (od Linuksa 3.17) następujące
pola:
-
pos: 0
flags: 02004002
mnt_id: 13
clockid: 0
ticks: 0
settime flags: 03
it_value: (7695568592, 640020877)
it_interval: (0, 0)
- clockid
- Jest to numeryczna wartość identyfikatora zegara
(związana z jedną ze stałych CLOCK_*,
zdefiniowanych za pomocą <time.h>), używanego
do oznaczania postępu czasomierza (w tym przykładzie, 0
oznacza CLOCK_REALTIME).
- ticks
- Jest to liczba przypadków, w których
upłynął czas czasomierza (tj. wartość,
którą zwróciłoby read(2)).
- settime
flags
- Pola wypisuje znaczniki, w które był ostatnio
wyposażony timerfd (zob. timerfd_settime(2)),
ósemkowo (w tym przypadku, ustawione są
TFD_TIMER_ABSTIME oraz TFD_TIMER_CANCEL_ON_SET).
- it_value
- Pole zawiera czas, jaki pozostał czasomierzowi do
upłynięcia, wyrażony w sekundach i nanosekundach.
Jest to zawsze wartość względna, niezależnie
od tego, czy czasomierz został utworzony ze znacznikiem
TFD_TIMER_ABSTIME.
- it_interval
- Pole zawiera interwał czasomierza, w sekundach i nanosekundach
(pola it_value i it_interval zawierają
wartości, które zwróciłoby
timerfd_gettime(2) wykonane na tym deskryptorze pliku).
Tłumaczenie niniejszej strony podręcznika: Przemek
Borys <pborys@dione.ids.pl>, Robert Luberda <robert@debian.org>
i Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną
dokumentacją. Bliższe informacje o warunkach licencji
można uzyskać zapoznając się z
GNU General
Public License w wersji 3 lub nowszej. Nie przyjmuje się
ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika
prosimy zgłaszać na adres listy dyskusyjnej
manpages-pl-list@lists.sourceforge.net.