2017-10-15 8 views
0

Wie kann ich die Dateideskriptor-Flags 'fd flags' erhalten, die sich in der Dateideskriptortabelle befinden, die jedem geöffneten Dateideskriptor zugeordnet ist? Ich würde gerne wissen, um den Code manuell oder zumindest welche Funktionen und Strukturen zu erforschen, weiter zu schreiben, ohne die fcntl-Funktion zu verwenden oder die/proc-Einträge anzuzeigen.Manuelles Abrufen von Informationen über den Linux-Dateideskriptor Tabelle

Die folgende Abbildung zeigt, dass die Dateideskriptortabelle für einen bestimmten Prozess ein Flag-Feld und ein Dateizeigerfeld enthält. Wie kann ich programmatisch auf diese Felder zugreifen?

enter image description here

Antwort

1

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

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

In diesem Beispiel 0100002 = O_LARGFILE|O_RDWR

+0

gerade meine Frage bearbeitet, ist es möglich, dies zu tun, ohne das Proc-Verzeichnis anzuzeigen? –

0

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

Verwandte Themen