/proc/pid/fdinfo/ - informații despre descriptorii de
fișiere
- /proc/pid/fdinfo/ (începând cu Linux
2.6.22)
- Acesta este un subdirector care conține o intrare pentru fiecare
fișier pe care procesul îl are deschis, numit prin
descriptorul său de fișier. Fișierele din acest
director pot fi citite numai de către proprietarul procesului.
Conținutul fiecărui fișier poate fi citit pentru a
obține informații despre descriptorul de fișier
corespunzător. Conținutul depinde de tipul de fișier
menționat de descriptorul de fișier
corespunzător.
- Pentru fișierele și directoarele obișnuite, vom vedea
ceva asemănător cu:
-
$ cat /proc/12015/fdinfo/4
pos: 1000
flags: 01002002
mnt_id: 21
- Câmpurile sunt următoarele:
- pos
- Acesta este un număr zecimal care arată decalajul
fișierului.
- flags
- Acesta este un număr octal care afișează modul de
acces la fișier și indicatoarele de stare ale
fișierului (a se vedea open(2)). Dacă fanionul
descriptorului de fișier close-on-exec este activat, atunci
flags va include și valoarea O_CLOEXEC.
- Înainte de Linux 3.1, acest câmp afișa în mod
incorect valoarea O_CLOEXEC la momentul deschiderii
fișierului, în loc de valoarea curentă a fanionului
close-on-exec.
- mnt_id
- Acest câmp, prezent de la Linux 3.15, este ID-ul montării
care conține acest fișier. A se vedea descrierea
/proc/pid/mountinfo.
- Pentru descriptorii de fișier eventfd (a se vedea
eventfd(2)), vedem (începând cu Linux 3.8)
următoarele câmpuri:
-
pos: 0
flags: 02
mnt_id: 10
eventfd-count: 40
- eventfd-count este valoarea curentă a contorului eventfd,
în hexazecimal.
- Pentru descriptorii de fișiere epoll (vezi epoll(7)), vedem
(începând cu Linux 3.8) următoarele
câmpuri:
-
pos: 0
flags: 02
mnt_id: 10
tfd: 9 events: 19 data: 74253d2500000009
tfd: 7 events: 19 data: 74253d2500000007
- Fiecare dintre liniile care încep cu tfd descrie unul dintre
descriptorii de fișier monitorizați prin intermediul
descriptorului de fișier epoll (a se vedea epoll_ctl(2)
pentru mai multe detalii). Câmpul tfd este numărul
descriptorului de fișier. Câmpul events este o
mască hexazecimală a evenimentelor monitorizate pentru acest
descriptor de fișier. Câmpul data este valoarea
datelor asociate cu acest descriptor de fișier.
- Pentru descriptorii de fișiere signalfd (a se vedea
signalfd(2)), vedem (începând cu Linux 3.8)
următoarele câmpuri:
-
pos: 0
flags: 02
mnt_id: 10
sigmask: 0000000000000006
- sigmask este masca hexazecimală a semnalelor care sunt
acceptate prin intermediul acestui descriptor de fișier signalfd;
(în acest exemplu, biții 2 și 3 sunt definiți,
corespunzând semnalelor SIGINT și SIGQUIT;
consultați signal(7)).
- Pentru descriptorii de fișiere inotify (a se vedea
inotify(7)), vedem (începând cu Linux 3.8)
următoarele câmpuri:
-
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
- Fiecare dintre liniile care încep cu „inotify”
afișează informații despre un fișier sau un
director care este monitorizat. Câmpurile din această linie
sunt după cum urmează:
- wd
- Un număr de descriptor de ceas (în zecimal).
- ino
- Numărul nodului-i al fișierului țintă
(în hexazecimal).
- sdev
- ID-ul dispozitivului în care se află fișierul
țintă (în hexazecimal).
- mask
- Masca de evenimente monitorizate pentru fișierul
țintă (în hexazecimal).
- Dacă nucleul a fost construit cu suport exportfs, ruta către
fișierul țintă este expusă ca un gestionar de
fișier, prin intermediul a trei câmpuri hexazecimale:
fhandle-bytes, fhandle-type și f_handle.
- Pentru descriptorii de fișiere fanotify (a se vedea
fanotify(7)), vedem (începând cu Linux 3.8)
următoarele câmpuri:
-
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
- A patra linie afișează informațiile definite atunci
când grupul fanotify a fost creat prin
fanotify_init(2):
- Fiecare linie suplimentară prezentată în
fișier conține informații despre una dintre
mărcile din grupul fanotify. Cele mai multe dintre aceste
câmpuri sunt ca pentru inotify, cu excepția:
- mflags
- Fanioanele asociate mărcii (exprimate în hexazecimal).
- mask
- Masca evenimentelor pentru această marcă (exprimată
în hexazecimal).
- ignored_mask
- Masca de evenimente care sunt ignorate pentru această marcă
(exprimată în hexazecimal).
- Pentru detalii privind aceste câmpuri, a se vedea
fanotify_mark(2).
- Pentru descriptorii de fișier timerfd (a se vedea
timerfd(2)), vedem (începând cu Linux 3.17)
următoarele câmpuri:
-
pos: 0
flags: 02004002
mnt_id: 13
clockid: 0
ticks: 0
settime flags: 03
it_value: (7695568592, 640020877)
it_interval: (0, 0)
- clockid
- Aceasta este valoarea numerică a ID-ului ceasului
(corespunzător uneia dintre constantele CLOCK_* definite
prin <time.h>) care este utilizat pentru a marca progresul
temporizatorului (în acest exemplu, 0 este
CLOCK_REALTIME).
- ticks
- Acesta este numărul de expirări ale cronometrului care au
avut loc (de exemplu, valoarea pe care read(2) ar returna-o).
- settime
flags
- Acest câmp enumeră fanioanele cu care timerfd a fost armat
ultima dată (a se vedea timerfd_settime(2)), în octal
(în acest exemplu, atât TFD_TIMER_ABSTIME cât
și TFD_TIMER_CANCEL_ON_SET sunt activate).
- it_value
- Acest câmp conține perioada de timp până la
următoarea expirare a temporizatorului, exprimată în
secunde și nanosecunde. Aceasta este întotdeauna
exprimată ca o valoare relativă, indiferent dacă
temporizatorul a fost creat utilizând indicatorul
TFD_TIMER_ABSTIME.
- it_interval
- Acest câmp conține intervalul temporizatorului, în
secunde și nanosecunde; (câmpurile it_value și
it_interval conțin valorile pe care le-ar returna
timerfd_gettime(2) pe acest descriptor de fișier).
Traducerea în limba română a acestui manual a
fost făcută de Remus-Gabriel Chelu
<remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită;
citiți
Licența
publică generală GNU Versiunea 3 sau o versiune
ulterioară cu privire la condiții privind drepturile de autor.
NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea
acestui manual, vă rugăm să trimiteți un e-mail
la
translation-team-ro@lists.sourceforge.net.