c語言如何從txt文件讀取數(shù)據(jù) 如何用c 讀寫一個超過2G的大文件,目的是把一個大文件分塊維護在內(nèi)存中?
如何用c 讀寫一個超過2G的大文件,目的是把一個大文件分塊維護在內(nèi)存中?C++似乎不支持自己的流API。它必須使用操作系統(tǒng)提供的API。如果是windows,則應該使用與文件映射相關的API。請參閱
如何用c 讀寫一個超過2G的大文件,目的是把一個大文件分塊維護在內(nèi)存中?
C++似乎不支持自己的流API。它必須使用操作系統(tǒng)提供的API。如果是windows,則應該使用與文件映射相關的API。請參閱諸如創(chuàng)建文件映射之類的函數(shù)的MSDN描述。即使不超過2G,在大多數(shù)情況下也不可能放置超過1.5g的內(nèi)存。
默認的C++API使用堆,堆的內(nèi)存塊非常小。分配給客戶機的內(nèi)存總量只有2G,很多內(nèi)存必須分配給系統(tǒng)和代碼。如果你想使用幾百米以上的內(nèi)存,就需要研究虛擬內(nèi)存系統(tǒng)。不能直接依賴C++API
~]/*解決方案:以只讀模式打開文件,在文件末尾找到文件指針,然后使用fTell函數(shù)返回指針在文件中的相對位置。*/
#包括“標準”。H“main(){file*FP/*定義文件指針*/long CNT/*定義變量CNT以存儲文件大小數(shù)據(jù)*/FP=fopen(”C:1)。TXT“,”R“/>*請在此處填寫測試文件的地址,并以只讀模式打開文件*/if(FP==null)/*如果打開的文件不存在,則退出*/{exit(0)Printf(”file open failed!“)}fseek(fp,0L,SEEKuend)/*使用fseek函數(shù)將指針定位到文件的末尾*/CNT=fTell(fp)/*使用fTell函數(shù)返回指針相對于文件開頭的位置,并計算*/printf(以字節(jié)為單位)(”文件占用的字節(jié)數(shù)為%LDn“,CNT)/*Output*/}
如何用C語言獲取文件的大???
有很多方法可以用C語言獲得文件大小。獲取文件系統(tǒng)屬性和讀取文件大小有兩種常用方法,不使用任何系統(tǒng)命令,也只使用C自己的庫函數(shù)。在C語言庫函數(shù)中,有stat函數(shù),可以獲取文件的基本信息,包括文件大小。
2、通過C語言文件操作,得到文件大小。在fopen中打開的文件可以通過fseek定位在文件的末尾。此時,fTell函數(shù)用于返回文件指針的偏移量值,即文件的實際大小。代碼如下:第一種方法是不打開文件直接讀取文件信息,效率更高。4、 測試代碼:以上接口功能可通過以下主要功能進行測試: