/proc/pid/fdinfo/ - Informationen über
Dateideskriptoren
- /proc/PID/fdinfo/ (seit Linux 2.6.22)
- In diesem Unterverzeichnis stehen die Dateideskriptoren aller von diesem
Prozess geöffneten Dateien. Die Dateien in diesem Verzeichnis
können nur von dem Eigentümer des Prozesses gelesen werden.
Der Inhalt jeder Datei kann gelesen werden, um Informationen über
den entsprechenden Dateideskriptor zu bekommen. Der Inhalt hängt
von der Art der Datei ab, die von dem entsprechenden Dateideskriptor
referenziert wird.
- Für reguläre Dateien und Verzeichnisse ergibt sich etwas der
Form:
-
$ cat /proc/12015/fdinfo/4
pos: 1000
flags: 01002002
mnt_id: 21
- Die Bedeutung der Felder im Einzelnen:
- pos
- Dies ist eine Dezimalzahl, die den Dateiversatz zeigt.
- flags
- Dies ist eine oktale Zahl, die den Dateizugriffsmodus und die
Dateistatusschalter anzeigt (siehe open(2)). Falls der
»close-on-exec«-Dateideskriptorschalter gesetzt ist, wird
flags auch den Wert O_CLOEXEC enthalten.
- Vor Linux 3.1 zeigte dieses Feld inkorrekterweise die Einstellung von
O_CLOEXEC zum Zeitpunkt des Öffnens der Datei an, statt den
aktuellen Wert des Schalters close-on-exec.
- mnt_id
- Dieses seit Linux 3.15 vorhandene Feld zeigt die Kennung der
Einhängung an, der diese Datei enthält. Siehe die
Beschreibung von /proc/PID/mountinfo.
- Für den Eventfd-Dateideskriptor (siehe eventfd(2)) gibt es
(seit Linux 3.8) die folgenden Felder:
-
pos: 0
flags: 02
mnt_id: 10
eventfd-count: 40
- eventfd-count ist der aktuelle hexadezimale Wert des
Eventfd-Zählers.
- Für den Epoll-Dateideskriptor (siehe epoll(7)) gibt es (seit
Linux 3.8) die folgenden Felder:
-
pos: 0
flags: 02
mnt_id: 10
tfd: 9 events: 19 data: 74253d2500000009
tfd: 7 events: 19 data: 74253d2500000007
- Jede mit tfd beginnende Zeile beschreibt einen Dateideskriptor, der
mit dem Epoll-Dateideskriptor überwacht wird (siehe
epoll_ctl(2) für weitere Details). Das Feld tfd ist
die Nummer des Dateideskriptors. Das Feld events ist eine
hexadezimale Maske der für diesen Dateideskriptor
überwachten Ereignisse. Das Feld data ist der diesem
Dateideskriptor zugeordnete Datenwert.
- Für den Signalfd-Dateideskriptor (siehe signalfd(2)) gibt es
(seit Linux 3.8) die folgenden Felder:
-
pos: 0
flags: 02
mnt_id: 10
sigmask: 0000000000000006
- sigmask ist die hexadezimale Maske der Signale, die über
diesen Signalfd-Dateideskriptor akzeptiert werden. (In diesem Beispiel
sind die Bits 2 und 3 gesetzt; dies entspricht den Signalen SIGINT
und SIGQUIT; siehe signal(7).)
- Für Inotify-Dateideskriptoren (siehe inotify(7)) gibt es
(seit Linux 3.8) die folgenden Felder:
-
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
- Jede der mit »inotify« beginnenden Zeilen zeigt
Informationen über eine überwachte Datei oder ein
überwachtes Verzeichnis an. Die Felder in dieser Zeile sind wie
folgt:
- wd
- Eine Watch-Deskriptornummer (deziaml)
- ino
- Die Inode-Nummer der Zieldatei (hexadezimal).
- sdev
- Die Kennung des Gerätes, auf dem sich die Zieldatei befindet
(hexadezimal).
- mask
- Die Maske der für die Zieldatei überwachten Ereignisse
(hexadezimal).
- Falls der Kernel mit Exportfs-Unterstützung gebaut wurde, ist der
Pfad zu der Zieldatei mittels drei hexadezimaler Felder als Datei-Handle
offengelegt: fhandle-bytes, fhandle-type und
f_handle.
- Für Fanotify-Dateideskriptoren (siehe fanotify(7)) gibt es
(seit Linux 3.8) die folgenden Felder:
-
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
- Das vierte Feld zeigt Informationen, die bei der Erstellung der
Fanotify-Gruppe mittels fanotify_init(2) definiert wurden:
- Jede zusätzliche in der Datei gezeigte Zeile enthält
Informationen über eine der Markierungen in der Fanotify-Gruppe.
Die meisten der Felder sind für Inotify, außer:
- mflags
- Die der Markierung zugeordneten Schalter (hexadezimal
ausgedrückt).
- mask
- Die Ereignismaske für diese Markierung (hexadezimal
ausgedrückt).
- ignored_mask
- Die Maske der für diese Markierung ignorierten Ereignisse
(hexadezimal ausgedrückt).
- Für Details über diese Felder lesen Sie
fanotify_mark(2).
- Für den Timerfd-Dateideskriptor (siehe timerfd(2)) gibt es
(seit Linux 3.17) die folgenden Felder:
-
pos: 0
flags: 02004002
mnt_id: 13
clockid: 0
ticks: 0
settime flags: 03
it_value: (7695568592, 640020877)
it_interval: (0, 0)
- clockid
- Dies ist der numerische Wert der Uhrkennung (entsprechend einer der
mittels <time.h> definierten Konstanten), der zur Markierung
des Fortschritts des Timers verwandt wird (in diesem Beispiel ist 0
CLOCK_REALTIME).
- ticks
- Dies ist die Anzahl der aufgetretenen Abläufe des Timers (d.h. dem
Wert, den read(2) darauf zurückliefern würde).
- settime
flags
- Dieses Feld führt in oktaler Schreibweise die Schalter auf, mit
denen Timerfd letztmalig beladen wurde (siehe timerfd_settime(2))
(in diesem Beispiel sind sowohl TFD_TIMER_ABSTIME als auch
TFD_TIMER_CANCEL_ON_SET gesetzt).
- it_value
- Dieses Feld hält die Zeitdauer in Sekunden und Nanosekunden, bis
der Timer das nächste Mal ablaufen wird. Der Wert wird immer
relativ ausgedrückt, unabhängig davon, ob der Timer mittels
des Schalters TFD_TIMER_ABSTIME erstellt wurde.
- it_interval
- Dieses Feld enthält das Intervall des Timers in Sekunden und
Nanosekunden. (Die Felder it_value und it_interval enthalten
die Werte, die timerfd_gettime(2) auf diesem Dateideskriptor
zurückliefern würde.)
ÜBERSETZUNG
Die deutsche Übersetzung dieser Handbuchseite wurde von
Martin Eberhard Schauer <Martin.E.Schauer@gmx.de>, Dr. Tobias
Quathamer <toddy@debian.org>, Chris Leick <c.leick@vollbio.de>,
Erik Pfannenstein <debianignatz@gmx.de> und Helge Kreutzmann
<debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die
GNU General
Public License Version 3 oder neuer bezüglich der
Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite
finden, schicken Sie bitte eine E-Mail an die Mailingliste der
Übersetzer:
debian-l10n-german@lists.debian.org.