La tua comprensione è sbagliata. Diversi processi di Linux possono scrivere sullo stesso file contemporaneamente (e ciò che accade potrebbe non essere specificato, tranne quando i processi sovrascrivono diversi segmenti di quel file). E qualche altro processo Linux (ad esempio il tuo browser) può leggere un file scritto in .
Potresti adottare una convenzione per evitare che . Ad esempio, potresti utilizzare il blocco dei file (adotta la convenzione secondo cui ogni programma pertinente dovrebbe farlo), ad es. con flock (2) , lockf(3) , ecc .... Ma ciò non impedirà ad altri processi (non seguendo le convenzioni) di accedere (o anche scrivere a) quel file. Puoi utilizzare un meccanismo di autorizzazione (ad esempio dedicando un utente di sistema al tuo setuid programma).
Vedi anche questo & che risponde su StackOverflow (alcuni dei quali menzionavano i meccanismi specifici di blocco obbligatorio di Linux deprecati). Leggi le proprietà ACID , valuta l'utilizzo di alcuni database ( sqlite , PostGreSQL , MongoDB , ecc ... ) o alcuni file indicizzati ( gdbm ).
Non conosco Windows, ma ho sentito dire che non consente accessi o scritture contemporanee allo stesso file.