Unix sistemleri ve büyükleri zorunlu kilitlerden kaçınır. Çekirdeğin bir dosyayı kullanıcı programları tarafından yapılan değişikliklere karşı kilitleyeceği, ancak yalnızca başka bir program tarafından yazılmış olması durumunda olmayan birkaç durum vardır. Bir program yazdığı için hiçbir unix sistemi bir dosyayı kilitlemez.
Komut dosyanızın eşzamanlı örneklerinin birbirlerinin ayak parmaklarına basmamalarını istiyorsanız, gibi açık bir kilitleme mekanizması kullanmanız gerekir .flock lockfile
Eklemek üzere bir dosya açtığınızda, bu >>, her programın her zaman dosyanın sonuna yazacağını garanti eder. Böylece çoklu örneklerin çıktısı asla birbirinin üzerine yazmaz ve sırayla yazarlarsa çıktıları yazılanlarla aynı sırada kalır.
Olabilecek en kötü şey, örneklerden birinin birkaç çıktı parçası yazması ve bir araya gelmelerini beklemesidir. Bir örnek tarafından üst üste yazar, diğer örnekler kendi yazılarını yazabilir. Örneğin, 1. örnek yazarsa foo, 2. örnek yazar hellove yalnızca 2. örnek yazarsa bar, dosya içerecektir foohellobar.
Bir writesistem , sistem çağrısı çağırdığında etkin bir şekilde dosyaya yazar . Bir çağrı writeatomiktir: her çağrı, writediğer programlar tarafından kesilmeyen bir bayt dizisi yazar. Tek bir aramanın ne kadar writeetkili bir şekilde yazacağı konusunda genellikle bir sınırlama vardır : daha büyük boyutlar için, yalnızca verilerin başlangıcı yazılır ve uygulama writetekrar çağırılmalıdır. Ayrıca, birçok program tamponlama gerçekleştirir: bir hafıza alanında veri toplarlar, sonra bu verileri bir yığın halinde yazarlar. Bazı programlar, çıktı arabelleğini tam bir satır veya diğer anlamlı bir ayrımdan sonra temizler. Bu tür programlarla, çok uzun olmadığı sürece tüm hatların kesintisiz olmasını bekleyebilirsiniz (birkaç kilobayta kadar; bu, işletim sistemine bağlıdır). Program anlamlı noktalarla aynı hizada değil, sadece tampon boyutuna bağlı olarak, bir durumda 4kB, sonra başka bir örnekte 4kB, sonra yine ilk durumda 4kB gibi bir şey görebilirsiniz.