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?
odpovede:
1 pre odpoveď č. 1Môž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.