/ / Manuálne získavanie informácií o tabuľke deskriptorov súborov Linux - c, linux, linux-kernel, deskriptor súborov

Manuálne získavanie informácií o tabuľke deskriptorov súborov Linux - c, linux, linux-kernel, deskriptor súborov

Ako môžem získať príznaky popisu súboru "fdpríznaky ", ktoré sa nachádzajú v tabuľke deskriptora súborov, ktorá je spojená s akýmkoľvek otvoreným deskriptorom súborov? Rád by som vedel, či kód napíšete ručne alebo aspoň čo funkcie a štruktúry skúmať ďalej, kým nepoužívate funkciu fcntl alebo zobrazíte položky / proc.

Nasledujúci obrázok ukazuje, že tabuľka deskriptora súborov pre daný proces má pole príznakov a pole ukazovateľa súboru. Ako môžem programovo sprístupniť tieto polia?

tu zadajte popis obrázku

odpovede:

1 pre odpoveď č. 1

Môžete pristupovať /proc/PID/fdinfo/FD súbor, ktorý obsahuje flags v osmičke:

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

V tomto príklade, 0100002 = O_LARGFILE|O_RDWR


0 pre odpoveď č. 2

fcntl() je systémové volanie, nie "knižnica". to je spôsob získavania príznakov priradených k deskriptoru súborov.