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