Por que o Windows bloqueia ao editar um arquivo aberto, quando o Linux não funciona?

2

Se eu estou escrevendo um arquivo LaTeX no linux eu posso recompilar e as mudanças apenas 'aparecem' no PDF aberto. Se eu usar um script bash para editar um arquivo .txt, recebo a opção para recarregá-lo.

Não é assim no Windows, o que parece preferir bloquear minhas ações até que o arquivo seja fechado.

Por que os dois são tão diferentes? Isso é uma falha do sistema de arquivos (eu não tentei isso no Linux em NTFS ou FAT32, apenas um dos FSs ext)? Ou é algo diferente?

    
por Pureferret 02.10.2012 / 14:50

1 resposta

6

What PDF viewer you are using in Linux? And what in Windows?

Uh, I don't know. The standard one for ubuntu?

Esta é a resposta. É o comportamento definido pela implementação. É completamente possível no Windows projetar um visualizador que não bloqueie o arquivo de outros processos 1 e monitorar o arquivo original para possíveis alterações 2 e avisá-lo se mudanças ocorrem.

No entanto, você pode ler este post para obter uma visão geral sobre como os arquivos são normalmente gerenciados em sistemas como o * nix.

1 O programador pode especificar dwShareMode = FILE_SHARE_WRITE ao chamar CreateFile () .

2 FindFirstChangeNotification ( ) no Windows, inotify no Linux

    
por 02.10.2012 / 15:03