Linux C操作超過2GB大小的檔案

2021-10-08 08:02:19 字數 406 閱讀 7643

使用普通的open、lseek操作檔案,當檔案達到2gb的時候寫資料就會失敗。這也是顯然的,lseek的原型是

long lseek(int handle, long offset, int fromwhere);

long在32位作業系統上只有4個位元組,只能定址正負2gb的資料。lseek64是用於讀寫大檔案的api,原型是

off64_t lseek64(int fd, off64_t offset, int whence);

通過這個函式就可以定址超過2gb的大檔案了。最後不要忘了為open加上o_largefile標記,或者直接使用open64函式開啟檔案,這二者是等價的。

易百納技術社群內容涵蓋機器視覺、音訊處理、機器連線、機器感知以及智慧型終端,是乙個多方向的專業性社群,致力於為更多工程師答疑解惑,創造機遇!

用2GB 處理21億的資料的排序

本文的的寫作是在csdn 看到了 漫畫 面試官讓我用 2gb 記憶體給 20億個整數 需要8gb記憶體 排序,我該咋整?這麼一篇文章,這篇文章說的外部排序的方法。但是,基於愛研究的精神,考慮有沒有一種方法比外部排序更快。c 的bitset,但此處並未使用bitset 因為不熟悉。點陣圖每一位占用1b...

只有2GB內存在20億個整數中找到出現次數最多的數

題目 有乙個包含20億個全是32位整數的大檔案,在其中找到出現次數最多的數 要求 記憶體限制2gb 解決辦法 把包含20億個數的大檔案用雜湊函式分成16個小檔案,根據雜湊函式的性質,同一種數不可能被雜湊到不同的小檔案上,同時每個小檔案中不同的數一定不會大於2億種,假設雜湊函式足夠優秀,然後對每乙個小...

中國首個5G基站在廣州開通!網速穩定2Gbps

高畫質 移動辦公 物聯網等都對通訊速度提出了新的要求,5g呈現山雨欲來的態勢。據 報道,昨日在廣州大學城,中國首個5g基站正式開通。所謂中國首個是指,該基站基於5g新空口協議,在外場測試中尚屬首次。報道稱,基站屬廣東移動聯合裝置商聯合建設,是為迎接即將到來的2017年世界移動大會。下一部還將在大學城...