先复制一段MAN
FREAD(3) Linux Programmer’s Manual FREAD(3)
NAME
fread, fwrite - binary stream input/output
SYNOPSIS
#include <stdio.h>
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
我先说结论
fread和asc/binary模式无关,一律binary
fread返回的不是字节数,当且仅当下面这么用的时候,返回值才是字节数
char buff[size];
FILE *fp;
...
如果是: fread(buff, size, 1, fp)
FREAD(3) Linux Programmer’s Manual FREAD(3)
NAME
fread, fwrite - binary stream input/output
SYNOPSIS
#include <stdio.h>
size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream);
size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);
我先说结论
fread和asc/binary模式无关,一律binary
fread返回的不是字节数,当且仅当下面这么用的时候,返回值才是字节数
char buff[size];
FILE *fp;
...
fread(buff, 1, size, fp);...
如果是: fread(buff, size, 1, fp)
返回1表示读取了size字节,返回0表示读取数量不够size字节,究竟是多少不知道!!