对于Windows平台,若要以二进制形式打开文件,则需添加'b'(UNIX/Linux平台不区分文本文件和二进制文件,http://blog.csdn.net/duyiwuer2009/article/details/7555137)。'b'的添加规则如下:
This additional "b" character can either be appended at the end of the string (thus making the following compound modes: "rb", "wb", "ab", "r+b", "w+b", "a+b") or be inserted between the letter and the "+" sign for the mixed modes ("rb+", "wb+", "ab+").
from: http://www.cplusplus.com/reference/clibrary/cstdio/fopen/
r Open text file for reading. The stream is positioned at the beginning of the file. r+ Open for reading and writing. The stream is positioned at the beginning of the file. w Truncate file to zero length or create text file for writing. The stream is positioned at the beginning of the file. w+ Open for reading and writing. The file is created if it does not exist, otherwise it is truncated. The stream is positioned at the beginning of the file. a Open for appending (writing at end of file). The file is created if it does not exist. The stream is positioned at the end of the file. a+ Open for reading and appending (writing at end of file). The file is created if it does not exist. The initial file position for reading is at the beginning of the file, but output is always appended to the end of the file.
from: http://man7.org/linux/man-pages/man3/fopen.3.html
关于fread()和fwrite()的返回值,见http://www.cplusplus.com/reference/clibrary/cstdio/fread/