Dust Of Dream

          知識真的是一個圓么?

          C語言讀取大文件的方法

          最近需要用C操作文件,但是使用fopen和fseek的時候,在32位操作系統(tǒng)中,沒辦法操作2G以上的文件,后面經(jīng)過多次Google和高手指點之后通過open64、lseek解決這個問題:
           1  #include <stdio.h>
           2 // #define _LARGEFILE_SOURCE
           3 // #define _LARGEFILE64_SOURCE
           4 // #define _FILE_OFFSET_BITS 64
           5 #include <sys/types.h>
           6 #include <sys/stat.h>
           7 #include <unistd.h>
           8 #include <stdio.h>
           9 #include <fcntl.h>
          10 #include <errno.h>
          11 
          12 int main(int argc, char *argv[])
          13 {
          14         off_t  file_last_pos;
          15         off_t end = 0;
          16         //  FILE           *fp;
          17         int fp = open64(argv[1], O_RDONLY);
          18         if (fp < 0 ) {
          19                 printf("can't open file [%s]\n", strerror(errno));
          20                 return 1;
          21         } else {
          22                 printf("file open success\n");
          23         }
          24         file_last_pos = lseek(fp, 0, SEEK_END);
          25         printf("Size: %1d \n",file_last_pos);
          26         close(fp);
          27         return 0;
          28 }
          //這行GCC參數(shù)很重要,原來是希望通過define的方式來解決的,但是最后還是只能通過這種方式
          gcc -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64    test.c   -o test

          posted on 2009-06-16 15:00 Anemone 閱讀(3538) 評論(2)  編輯  收藏 所屬分類: 牧羊心得

          Feedback

          # re: C語言讀取大文件的方法 2009-07-23 21:16 rrt

          你把
          #define _LARGEFILE_SOURCE
          #define _LARGEFILE64_SOURCE
          #define _FILE_OFFSET_BITS 64

          放在
          #include <stdio.h>

          前面就行了,可以不再gcc里制定參數(shù)了。  回復(fù)  更多評論   

          # re: C語言讀取大文件的方法 2009-07-23 21:18 rrt

          也不需要用open64  回復(fù)  更多評論   


          My Links

          Blog Stats

          News

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          新聞檔案

          相冊

          常去網(wǎng)站

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 土默特右旗| 潜江市| 枞阳县| 如东县| 成都市| 霍州市| 含山县| 磐安县| 井冈山市| 屯昌县| 闽侯县| 抚顺市| 龙胜| 宣汉县| 富锦市| 喀喇| 龙南县| 巴林右旗| 亚东县| 长海县| 淅川县| 北辰区| 寿宁县| 岗巴县| 博客| 保德县| 富锦市| 龙岩市| 中牟县| 宜都市| 儋州市| 汉川市| 诸城市| 郯城县| 湖州市| 乐陵市| 黎城县| 绥中县| 类乌齐县| 德江县| 芜湖县|