โดยทั่วไปแอปพลิเคชันจะทำการบันทึกปรมาณูโดยการเปลี่ยนชื่อไฟล์เก่าและเขียนไฟล์ใหม่เข้าที่หรือโดยการเขียนไฟล์ชั่วคราวแล้วแทนที่ไฟล์เก่าด้วยไฟล์ชั่วคราวใหม่ emacs ตัวใดที่ทำสิ่งเหล่านี้ ฉันพบ ลิงค์นี้ เพื่อการสนทนาแก้ไข แต่ฉันไม่เข้าใจสิ่งที่เกิดขึ้น
โดยทั่วไปแอปพลิเคชันจะทำการบันทึกปรมาณูโดยการเปลี่ยนชื่อไฟล์เก่าและเขียนไฟล์ใหม่เข้าที่หรือโดยการเขียนไฟล์ชั่วคราวแล้วแทนที่ไฟล์เก่าด้วยไฟล์ชั่วคราวใหม่ emacs ตัวใดที่ทำสิ่งเหล่านี้ ฉันพบ ลิงค์นี้ เพื่อการสนทนาแก้ไข แต่ฉันไม่เข้าใจสิ่งที่เกิดขึ้น
คำตอบ:
คำตอบก็คือมันขึ้นอยู่กับปัจจัยทุกประเภท
ก่อนอื่นโปรดทราบว่า "การเปลี่ยนชื่อไฟล์เก่าและการเขียนไฟล์ใหม่แทนที่" ไม่ใช่อะตอมมิก
Emacs สามารถบันทึกได้หลายวิธี:
โปรดทราบว่า "การเชื่อมโยงหยุดพัก" หมายถึงไฟล์ใหม่อาจมีสิทธิ์ / เจ้าของ / ...
ในกรณีส่วนใหญ่ Emacs จะใช้วิธีที่สอง (เพื่อรักษาลิงก์และการอนุญาต) แต่ถ้าจะต้องทำการแบ็คอัพไฟล์ (ตาม make-backup-files
) จากนั้นก็มักจะใช้วิธีแรก (โดยที่การเปลี่ยนชื่อถูกใช้เพื่อสร้างการสำรองข้อมูล) แม้ว่าจะขึ้นอยู่กับ backup-by-copying
(รวมถึงตัวแปรอื่น ๆ ที่มีชื่อที่ขึ้นต้นด้วย backup-by-copying-when-
) เช่นเดียวกับ file-precious-flag
และ break-hardlink-on-save
.