98 votes

Comment obtenir un pointeur FILE à partir d'un descripteur de fichier?

Je joue avec mkstemp (), qui fournit un descripteur de fichier, mais je veux générer une sortie formatée via fprintf (). Existe-t-il un moyen simple de transformer le descripteur de fichier fourni par mkstemp () en une structure FILE * adaptée à une utilisation avec fprintf ()?

122voto

Richard Pennington Points 12912

Utilisez fdopen() :

 FILE* fp = fdopen(fd, "w");
 

32voto

Gregory Pakosz Points 35546

FILE* f = fdopen(d, "w");

sortie homme fdopen:

SYNOPSIS

 #include <stdio.h>

FILE *
fdopen(int fildes, const char *mode);
 

La fonction fdopen() associe un flux au descripteur de fichier existant, fildes . Le mode du flux doit être compatible avec le mode du descripteur de fichier. Lorsque le flux est fermé via fclose(3) , fildes est également fermé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X