proc_pid_fdinfo(5)

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

OPIS

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

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

ZOBACZ TAKŻE
proc(5)

TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: 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.