最近遇到个用C语言进行大文件处理的问题,以前没做过,希望各路高手给点方法。

要求:现在有一个2G大小的文件(*.txt),里面的内容是,每行只有一个单位的名称,现在要求读取最后的一千行的单位名称。(读取时要注意效率)
问题:1,用C语言如何读取大文件?(要用内存映射及64位的API吗?)
2,如何统计文件里的行数?
3,如何读取文件中一行的数据?(fgets() api?)
暂时想到的就是这些问题,请各路高手给点方法和C语言代码,不尽感谢!
给分

第1个回答  2013-04-28
问题:1,用C语言如何读取大文件?(要用内存映射及64位的API吗?)
答:分批处理,和普通文件一样。就是多循环几次。
2,如何统计文件里的行数?
答:统计文件中的换行字符个数。分批处理,计算。同时存储倒数第1000个回车符的文件指针位置。
3,如何读取文件中一行的数据?(fgets() api?)
答:识别换行字符。

问:读取最后的一千行的单位名称。
答:为了效率,打开文件后,就定位到倒数第1000个回车符的文件指针位置,进行读取。以换行符为分割来提取。
相似回答