คุณต้องใช้ฟังก์ชัน fdatasync(fd) เพื่อบังคับให้เขียนไฟล์ด้วย filedescriptor fd ไปยังดิสก์ ไม่ได้บังคับให้อัปเดตข้อมูลเมตา โปรดทราบด้วยว่ามันใช้ได้เฉพาะบน Unix เท่านั้น
โซลูชันข้ามแพลตฟอร์มเพิ่มเติมคือการใช้ fsync(fd) เนื่องจากบังคับให้เขียนไฟล์ด้วย filedescriptor fd ไปยังดิสก์ บน Unix จะเรียกฟังก์ชัน native fsync() บน Windows ฟังก์ชัน MS _commit()
ตัวอย่าง
import os, sys # Open a file fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT ) os.write(fd, "This is test") # Now you can use fsync() method. os.fsync(fd) # Now read this file from the beginning os.lseek(fd, 0, 0) str = os.read(fd, 100) print "Read String is : ", str os.close( fd )
ผลลัพธ์
เมื่อเรารันโปรแกรมด้านบน มันจะให้ผลลัพธ์ดังต่อไปนี้:
Read String is : This is test