/ / Ottenimento manuale di informazioni sulla tabella dei descrittori di file Linux - c, linux, linux-kernel, descrittore di file

Ottenere manualmente informazioni sulla tabella dei descrittori di file Linux - c, linux, linux-kernel, descrittore di file

Come posso ottenere i flag dei descrittori di file "fdflags "che risiedono nella tabella descrittore di file associata a qualsiasi descrittore di file aperto? Mi piacerebbe sapere scrivere il codice manualmente o almeno quali funzioni e strutture cercare ulteriormente senza utilizzare la funzione fcntl o visualizzare le voci / proc.

L'immagine sotto mostra che la tabella descrittore del file per un determinato processo ha un campo flags e un campo pointer del file. Come posso accedere in modo programmatico a questi campi?

inserisci la descrizione dell'immagine qui

risposte:

1 per risposta № 1

È possibile accedere /proc/PID/fdinfo/FD file che contiene flags in ottale:

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

In questo esempio, 0100002 = O_LARGFILE|O_RDWR


0 per risposta № 2

fcntl() è una chiamata di sistema, non "una libreria". esso è il modo in cui recuperi i flag associati a un descrittore di file.