Scroll to navigation

proc_pid_fdinfo(5) File Formats Manual proc_pid_fdinfo(5)

BEZEICHNUNG

/proc/pid/fdinfo/ - Informationen über Dateideskriptoren

BESCHREIBUNG

/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:
Dies ist eine Dezimalzahl, die den Dateiversatz zeigt.
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.
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:
Eine Watch-Deskriptornummer (deziaml)
Die Inode-Nummer der Zieldatei (hexadezimal).
Die Kennung des Gerätes, auf dem sich die Zieldatei befindet (hexadezimal).
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:
Das an fanotify_init(2) übergebene Argument flags (hexadezimal ausgedrückt).
Das an fanotify_init(2) übergebene Argument event_f_flags (hexadezimal ausgedrückt).
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:
Die der Markierung zugeordneten Schalter (hexadezimal ausgedrückt).
Die Ereignismaske für diese Markierung (hexadezimal ausgedrückt).
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)
    

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).
Dies ist die Anzahl der aufgetretenen Abläufe des Timers (d.h. dem Wert, den read(2) darauf zurückliefern würde).
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).
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.
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.)

SIEHE AUCH

proc(5)

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

2. Mai 2024 Linux man-pages (unveröffentlicht)