Falha ao fechar a chamada do sistema

1

A página de manual de close e este link (que parece autoritativo) dizem que o close chamada do sistema pode falhar.

Como uma biblioteca de IO deve lidar com isso?

    
por PSkocik 24.09.2015 / 00:58

1 resposta

1

O mais preocupante seria

 [EIO]              A previously-uncommitted write(2) encountered an
                    input/output error.

para programas idealmente deve verificar o valor de retorno de perto, especialmente para EIO . Muitas vezes, as gravações falham quando um sistema de arquivos é preenchido, embora, idealmente, houvesse monitoramento ou logrotation ou algo assim para detectar essa situação antes que ela aconteça. Checksumming os dados como está sendo escrito, em seguida, verificar o que foi escrito pode ser necessário se você não confiar no sistema de arquivos e está lidando com dados super críticos, como, eu não sei, /etc/passwd ou arquivos em lotes de pagamentos, ambos que eu vi se tornar horrivelmente corrompido por razões não relacionadas ao sistema de arquivos.

Suponho que nem todo programa que grava arquivos verifica o retorno, embora isso deva ser auditado caso a caso. (Eu me lembro de falsos positivos de eu acho libxml anos atrás em verificações apertadas?)

Também vou me esquivar de como uma biblioteca C deve fazer o bit de manipulação de erros.

    
por 24.09.2015 / 01:30