proc_pid_fdinfo(5)

NAZWA
/proc/pid/fdinfo/ - informacje o deskryptorach pliku

OPIS
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):

flags
    Argument flags podany fanotify_init(2) (wyrażony szesnastkowo).

event-flags
    Argument event_f_flags podany fanotify_init(2) (wyrażony szesnastkowo).

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).

HISTORIA
Linux 2.6.22.

ZOBACZ TAKŻE
proc(5)

TŁUMACZENIE
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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.