Sua compreensão está errada. Vários processos Linux podem gravar no mesmo arquivo de uma só vez (e o que acontece então pode ser não especificado, exceto quando os processos substituem diferentes segmentos desse arquivo). E algum outro processo Linux (por exemplo, seu navegador) pode ler um arquivo para o qual está gravado .
Você pode adotar uma convenção para evitar isso . Por exemplo, você pode usar o bloqueio de arquivo consultivo (adotando a convenção de que todo programa relevante deve fazer isso), por exemplo, com flock (2) , lockf (3) , etc. convenções) para acessar (ou mesmo gravar) esse arquivo. Você pode usar máquinas de permissão (por exemplo, dedicando um usuário do sistema ao seu programa setuid ).
Veja também as respostas this & that no StackOverflow (alguns deles mencionaram os mecanismos específicos do Linux de bloqueio obrigatório obsoleto ). Leia sobre as propriedades do ACID , considere usar algum banco de dados ( sqlite , PostGreSQL , MongoDB , etc ...) ou algum arquivo indexado ( gdbm ).
Não conheço o Windows, mas ouvi o boato de que ele não permite acesso simultâneo ou grava no mesmo arquivo.