文件中有一个位置指针,指向当前读写的位置。如果顺序读写一个文件,每次读写一个字符,读取完成后指针移到下一个字符的位置。当然,也可以进行随机读写,关键在于控制文件的位置指针。有几个相关函数:
- fseek
fseek函数的调用形式是: fseek(文件类型指针,位移量,起始点)
起始点分为三种,如下:
起始点 | 名字 | 用数字代表 |
文件开始 | SEEK_SET | 0 |
文件当前位置 | SEEK_CUR | 1 |
文件末尾 | SEEK_END | 2 |
"位移量"指以“起始点”为基点,向前移动的字节数,要使用Long类型
- ftell
ftell函数的功能是得到流式文件中的当前位置,用相对于文件开头的位移量来表示。
知道了上述两个函数,就可以知道一个文件的长度了。使用如下语句:
//将文件位置指针移动到文件尾
fseek(fp,0,SEEK_END);
//得到位置指针相对于文件头的位移量,即文件大小,单位为byte
Long bytes=ftell(fp);