Puede un fdopen() causa una pérdida de memoria?
-
09-06-2019 - |
Pregunta
Yo uso fdopen para asociar un flujo con un archivo abierto.
Cuando Me close()
el archivo, es la corriente automáticamente desvinculado así, y toda la secuencia de memoria devuelto al sistema operativo, o tengo que ser conscientes de la fdopen gustaría archivo y cerrarlo de una manera específica?
-Adam
Solución
close()
es una llamada al sistema.Se va a cerrar el descriptor de archivo en el kernel, pero no va a liberar el puntero de ARCHIVO y recursos en la libc.Usted debe utilizar fclose() en el ARCHIVO puntero del lugar, que también se encargará de cerrar el descriptor de archivo.
Otros consejos
El kernel maneja los recursos, y usted no tiene ningún control sobre ellos otros de la llamada de cierre que puede liberar la memoria cuando se quiere, no más tarde de la terminación del proceso).
/Allan