2012-03-09 22 views
8

Mirando la página del manual para fopen no puedo obtener una respuesta definitiva a esta pregunta.¿Fopen crea un descriptor de archivo?

FILE *fopen(const char *path, const char *mode); 

entiendo que fopen devuelve un puntero a un archivo a una corriente, pero es un descriptor de archivo creado como un subproducto? Estoy intentando asegurarme de incluir el indicador FD_CLOEXEC en cada instancia en que se crea un descriptor de archivo. Si se crea un descriptor de archivo de fopen, ¿cuál es la mejor manera de usar fnctl() cuando no hay "fd" para usar como entrada?

Gracias.

Respuesta

16

En Unix (que supongo que está utilizando porque estás mencionando fcntl) se hace abrir un descriptor de archivo, como fopen(3) llama finalmente open(2). puede obtener ese descriptor de archivo a través de fileno(3).

Cuestiones relacionadas