我用fread读入一个字符缓冲区。
char buffer[50];
int nbytes = fread(buffer, 1, 50, fp);
我从中读取的文件正好包含单词Hello,即5个字节。
在上面的例子中,
nbytes
等于6。为什么?此外,从零字节文件(即它是空的)读取返回0。
最佳答案
我的猜测是,无论你读的是什么文件,要么包含一个换行符(如果是文本文件),要么在字符串后0字节。如果您在unix上,请运行以下命令:
od -c filename
它将打印文件的全部内容,包括不可打印的内容。
您还可以运行:
wc --bytes filename
它将以字节为单位打印文件的长度(以及文件名)。