Pergunta

Eu uso o fdopen para associar um stream a um arquivo aberto.

Quando eu close() o arquivo, o fluxo também é desassociado automaticamente e toda a memória do fluxo é retornada ao sistema operacional, ou preciso estar ciente do arquivo fdopen'd e fechá-lo de uma maneira específica?

-Adão

Foi útil?

Solução

close() é uma chamada de sistema.Ele fechará o descritor de arquivo no kernel, mas não liberará o ponteiro FILE e os recursos na libc.Você deve usar fclose() no ponteiro FILE, que também fechará o descritor de arquivo.

Outras dicas

O kernel gerencia esses recursos e você não tem controle sobre eles, exceto a chamada de fechamento, que pode liberar memória quando desejar (o mais tardar no encerramento do processo).

/Allan

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top