fread讀取文件(二進制文件)


 fread()是c庫函數,利於移植,使用緩存,效率較read()高。

原型:

size_t  fread(void *buffer, size_t size, size_t count, FILE * stream);

要注意的是它的返回值,如果讀取到了文件尾,返回值小於count,可以使用feof()函數檢測出來,返回真。

PS:返回值代表的是某種類型的size的個數。

下面程序按照1024k(一次大小為sizeof(char))一次讀取二進制文件。

#include <stdio.h>
#include <string.h>


#define BUFFSIZE 1024

int main(int argc, char **argv){

    char buff[BUFFSIZE];
    FILE *fd = fopen (argv[1], "rb");
    int count, errno=0;

    bzero (buff, BUFFSIZE);
    while (!feof (fd)){
        count = fread (buff, sizeof (char), BUFFSIZE, fd);
        int n = feof (fd);
        printf ("%d,%d\n", count, n);
        printf ("%s\n",strerror (errno));
    }
    return 0;
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM