Pokud jde jen o případ, aby se nestalo: "(kdy např. jeden program už čte to, co druhý ještě nedopsal)", tak bych možná využil raději práv než nějakých externích zámků.:
while [[ ! -a file || -w file ]]; do sleep 10; done
s tím, že ten zapisující po ukončení provede :
chmod 500 file
čímž uzavřel soubor pro zápis a je připraven pro čtení.

