Sim, é uma boa ideia fechar os descritores de arquivos assim que você não precisar mais deles, apenas para liberar os recursos associados e evitar atingir limites.
Agora, alguns descritores de arquivos podem estar abertos por meio de algumas APIs, e você deve usar essa mesma API para fechá-las (não usar a chamada de sistema close(2)
).
Uma API típica é stdio em C (todos os fopen
, printf
, fputs
...). Por exemplo, se um arquivo foi aberto com fopen(3)
(que retorna um tipo de dados FILE*
, não um descritor de arquivo, mas terá criado um fd abaixo), você deverá fechar se com fclose(thatFILE)
(que irá liberar todos os buffers), não close(fileno(thatFILE))
, o que fecharia o fd sob os pés do estúdio.