/ / Manuell Informationen über Linux File Descriptor Table erhalten - c, linux, linux-kernel, Datei-Deskriptor

Manuelles Abrufen von Informationen über die Linux-Dateideskriptor-Tabelle - c, linux, linux-kernel, Datei-Deskriptor

Wie kann ich die Datei-Deskriptor-Flags "fdflags "in der Dateideskriptor-Tabelle, die jedem offenen Dateideskriptor zugeordnet ist? Ich würde gerne wissen, wie man den Code manuell schreibt oder zumindest welche Funktionen und Strukturen er weiter erforscht, ohne die fcntl-Funktion zu verwenden oder die / proc-Einträge anzuzeigen.

Das folgende Bild zeigt, dass die Dateideskriptortabelle für einen bestimmten Prozess ein Flag-Feld und ein Dateizeigerfeld aufweist. Wie kann ich programmatisch auf diese Felder zugreifen?

Bildbeschreibung hier eingeben

Antworten:

1 für die Antwort № 1

Sie können darauf zugreifen /proc/PID/fdinfo/FD Datei, die enthält flags in Oktal:

$ cat /proc/$$/fdinfo/0
pos:    0
flags:  0100002
mnt_id: 20

In diesem Beispiel 0100002 = O_LARGFILE|O_RDWR


0 für die Antwort № 2

fcntl() ist ein Systemaufruf, keine "Bibliothek". Es ist die Art, wie Sie die Flags abrufen, die einem Dateideskriptor zugeordnet sind.