ระบบ Unix โดยและหลีกเลี่ยงการล็อคขนาดใหญ่ที่บังคับ มีบางกรณีที่เคอร์เนลจะล็อกไฟล์จากการดัดแปลงโดยโปรแกรมผู้ใช้ แต่ไม่ใช่ถ้ามันถูกเขียนโดยโปรแกรมอื่น ไม่มีระบบยูนิกซ์ที่จะล็อคไฟล์เพราะโปรแกรมกำลังเขียนลงไฟล์
หากคุณต้องการกรณีพร้อมกันสคริปต์ของคุณไม่ให้ดอกยางบนเท้าของแต่ละคนอื่นคุณจะต้องใช้กลไกการล็อคอย่างชัดเจนเช่นflock
lockfile
เมื่อคุณเปิดไฟล์เพื่อต่อท้ายซึ่ง>>
แต่ละโปรแกรมจะรับประกันว่าจะเขียนไปยังจุดสิ้นสุดของไฟล์เสมอ ดังนั้นเอาต์พุตของอินสแตนซ์หลายตัวจะไม่เขียนทับกันและถ้าพวกเขาสลับกันเพื่อเขียนเอาต์พุตของพวกเขาจะอยู่ในลำดับเดียวกันกับการเขียน
สิ่งที่ไม่ดีที่อาจเกิดขึ้นคือถ้าหนึ่งในอินสแตนซ์เขียนหลายชิ้นของผลลัพธ์และคาดว่าจะออกมาพร้อมกัน ระหว่าง consecutives ที่เขียนโดยอินสแตนซ์หนึ่งอินสแตนซ์อื่นอาจทำการเขียนของตนเอง ตัวอย่างเช่นถ้าเช่น 1 เขียนfoo
แล้วเช่น 2 เขียนhello
และเพียงแล้วเช่น 2 เขียนแล้วไฟล์จะประกอบด้วยbar
foohellobar
กระบวนการเขียนไปยังไฟล์อย่างมีประสิทธิภาพเมื่อเรียกการwrite
เรียกระบบ การเรียกใช้write
คือ atomic: การเรียกแต่ละครั้งเพื่อwrite
เขียนลำดับของไบต์ที่จะไม่ถูกขัดจังหวะโดยโปรแกรมอื่น มักจะมีข้อ จำกัด เกี่ยวกับปริมาณข้อมูลที่การเรียกครั้งเดียวที่write
จะเขียนได้อย่างมีประสิทธิภาพ: สำหรับขนาดที่ใหญ่กว่าเฉพาะจุดเริ่มต้นของข้อมูลที่ถูกเขียนและแอปพลิเคชันจะต้องโทรwrite
อีกครั้ง นอกจากนี้หลายโปรแกรมยังทำการบัฟเฟอร์: พวกเขาสะสมข้อมูลในพื้นที่หน่วยความจำแล้วเขียนข้อมูลนี้ในก้อนเดียว บางโปรแกรมล้างบัฟเฟอร์การส่งออกหลังจากบรรทัดที่สมบูรณ์หรือการแยกที่มีความหมายอื่น ๆ ด้วยโปรแกรมดังกล่าวคุณสามารถคาดหวังว่าทั้งบรรทัดจะไม่ถูกขัดจังหวะตราบใดที่มันไม่ยาวเกินไป (ไม่เกินสองสามกิโลไบต์ขึ้นอยู่กับระบบปฏิบัติการ) หากโปรแกรมไม่ได้ล้างข้อมูลที่จุดที่มีความหมาย แต่ขึ้นอยู่กับขนาดบัฟเฟอร์คุณอาจเห็นสิ่งต่าง ๆ เช่น 4kB จากอินสแตนซ์หนึ่งจากนั้น 4kB จากอินสแตนซ์อื่นจากนั้นอีก 4kB จากอินสแตนซ์แรกเป็นต้น