Même si fileno(FILE *)
peut renvoyer un descripteur de fichier, faites TRES attention à ne pas contourner le tampon de stdio. S'il existe des données tampon (lues ou non vidées), les lectures/écritures à partir du descripteur de fichier peuvent donner des résultats inattendus.
Pour répondre à l'une des questions annexes, pour convertir un descripteur de fichier en un pointeur FILE, utilisez fdopen(3)
La bonne fonction est int fileno(FILE *stream)
. Il peut être trouvé dans <stdio.h>
, et est une norme POSIX mais pas la norme C.