1
เหตุใดไฟล์จัดการมาตรฐาน C ++ จึงหาวิธีการใช้งาน
C ++ ใช้streamoffชนิดเพื่อแสดงออฟเซ็ตภายในสตรีม (ไฟล์) และกำหนดไว้ดังนี้ใน [stream.types]: using streamoff = implementation-defined ; ประเภท streamoff เป็นคำพ้องความหมายสำหรับหนึ่งในประเภทอินทิกรัลพื้นฐานที่ลงนามแล้วซึ่งมีขนาดเพียงพอที่จะแสดงขนาดไฟล์สูงสุดที่เป็นไปได้สำหรับระบบปฏิบัติการ 287) 287) ความยาวโดยทั่วไป สิ่งนี้สมเหตุสมผลเนื่องจากอนุญาตให้ค้นหาไฟล์ขนาดใหญ่ (ต่างจากการใช้longซึ่งอาจมีความกว้างเพียง 32 บิต) [filebuf.virtuals] กำหนดbasic_filebufฟังก์ชั่นของการค้นหาภายในไฟล์ดังนี้: pos_type seekoff(off_type off, ios_base::seekdir way, ios_base::openmode which = ios_base::in | ios_base::out) override; off_typeเทียบเท่ากับstreamoffดู [iostreams.limits.pos] อย่างไรก็ตามมาตรฐานก็จะอธิบายผลกระทบของฟังก์ชั่น ฉันรู้สึกหงุดหงิดกับประโยคสุดท้ายที่ต้องเรียกร้องให้fseek: ผลกระทบ : อนุญาตwidthแสดงa_codecvt.encoding()ว่า หากis_open() == falseหรือoff != 0 && width <= …