- 論壇徽章:
- 0
|
各位大俠,本人在之前有過關(guān)于如何讀寫大于2G文件的疑問,后來通過open函數(shù)的flags多加一個O_LARGEFILE標(biāo)志來解決了(例如- fd=open("file.txt",O_WRONLY|O_CREAT|O_LARGEFILE);
復(fù)制代碼 ),但無奈read和write的性能太低,于是想通過fopen函數(shù)來實(shí)現(xiàn),本人通過翻閱網(wǎng)絡(luò)資料,實(shí)現(xiàn)方式大致如下:
- //這三個宏定義一下,為支持大于2G的文件
- #define _LARGEFILE_SOURCE
- #define _LARGEFILE64_SOURCE
- #define _FILE_OFFSET_BITS
- ...
- //然后用fopen64()函數(shù)打開文件
- ...
- //read(),write()讀寫文件
- ...
- //fclose()函數(shù)關(guān)閉文件
復(fù)制代碼
最后的執(zhí)行結(jié)果我看到了生成了大于2G的文件,但不知為何程序不能結(jié)束,始終運(yùn)行在那里,好像是fclose()函數(shù)無法將打開的文件句柄關(guān)閉,請問這是什么原因,我改怎么做? |
|