2
อินเตอร์เฟสการเรียกใช้ระบบทั่วไปอนุญาตให้ลดขนาดไฟล์ (โดยไม่ต้องแทนที่ด้วย inode อื่น) หรือไม่?
มีวิธีไปยังopen()ไฟล์และทำให้ไฟล์ย่อขนาดหรือไม่ แน่นอนหนึ่งสามารถเปิดได้ในโหมดผนวกหรือพยายามที่จะสิ้นสุดและเขียนเพื่อให้พวกเขาเติบโต อย่างไรก็ตามเท่าที่ฉันรู้ไม่มีวิธีการลดขนาดไฟล์ผ่านอินเตอร์เฟซการโทรระบบยูนิกซ์สไตล์ทั่วไป วิธีเดียวที่จะทำได้เท่าที่ฉันรู้คือการแกล้งทำโดยการสร้างไฟล์ใหม่ที่สั้นกว่าและrename()แทนที่ไฟล์เก่า ฉันแค่ต้องการการยืนยันเพราะฉันเห็นคำตอบที่บอกเป็นนัยว่าเป็นไปได้ที่จะทำให้ตัวแก้ไขไฟล์ที่ทำงานบนไฟล์โดยตรงแทนที่จะทำตามขั้นตอนการสร้างใหม่และเปลี่ยนชื่อใหม่ ฉันคิดเสมอว่าไฟล์ api ในอินเตอร์เฟสการเรียกระบบ libc และ unix สไตล์ไม่อนุญาตให้มีการลดขนาดไฟล์เพื่อความสะดวกในการใช้งานระบบไฟล์และอาจหลีกเลี่ยงรูปแบบการใช้งานที่อาจนำไปสู่การกระจายตัว