Hiểu biết của bạn là sai. Một số quy trình Linux có thể ghi vào cùng một tệp cùng một lúc (và những gì xảy ra sau đó có thể không được chỉ định, ngoại trừ khi các quy trình ghi đè lên các phân đoạn khác nhau của tệp đó). Và một số quy trình Linux khác (ví dụ: trình duyệt của bạn) có thể đọc một tệp được ghi vào .
Bạn có thể thông qua một quy ước để tránh điều đó . Ví dụ: bạn có thể sử dụng khóa tập tin tư vấn (áp dụng quy ước rằng mọi chương trình có liên quan nên làm điều đó), ví dụ với flock (2) , lockf (3) , v.v .... Nhưng điều đó sẽ không cấm các quy trình khác (không tuân theo quy ước của bạn) để truy cập (hoặc thậm chí ghi vào) tệp đó. Bạn có thể sử dụng máy móc cấp phép (ví dụ: bằng cách dành một người dùng hệ thống cho chương trình setuid của bạn ).
Xem thêm này & rằng câu trả lời trên StackOverflow (một số trong số họ đề cập đến phản khóa bắt buộc các cơ chế Linux cụ thể). Đọc về các thuộc tính ACID , xem xét sử dụng một số cơ sở dữ liệu ( sqlite , PostGreSQL , MongoDB , v.v.) hoặc một số tệp được lập chỉ mục ( gdbm ).
Tôi không biết Windows, nhưng nghe tin đồn rằng nó không cho phép truy cập đồng thời hoặc ghi vào cùng một tệp.