文件指针偏移的相关函数(rewind ftell fseek)
#include "stdafx.h"
#if 0
----rewind
void rewind ( FILE * stream );
函数功能:将文件指针重新指向一个流的开头。
如果一个文件具有读写属性,当我们写完文件,需要读的时候,
此时会遇到文件结尾现象。此时就需要 rewind
----ftell
long ftell ( FILE * stream );
函数功能:得到流式文件的当前读写位置, 其返回值是当前读写
位置偏离文件头部的字节数
返回值:成功,返回当前读写位置偏离文件头部的字节数。
失败,返回 - 1
----fseek
int fseek ( FILE * stream, long offset, int origin );
stream:文件句柄
offset:偏移量
origin:偏移起始位置
函数功能:偏移文件指针。
返回值:成功返回 0,失败返回-1
常见的起始位置有宏定义:
#define SEEK_CUR 1 当前位置
#define SEEK_END 2 文件结尾
#define SEEK_SET 0 文件开头
fseek(fp,100L,0); 把 fp 指针移动到离文件开头 100 字节处;
fseek(fp, 100L, 1); 把 fp 指针移动到离文件当前位置 100 字节处;
fseek(fp, 100L, 2); 把 fp 指针退回到离文件结尾 100 字节处。
#endif
int _tmain(int argc, _TCHAR* argv[])
{
FILE * fp = fopen("data.txt", "w+");
char ch;
for (ch = 'a'; ch <= 'z'; ch++)
{
fputc(ch,fp);
}
//rewind(fp);
fseek(fp, 0, SEEK_SET);
int len = ftell(fp); //返回当前位置偏离头部的字节数
printf("len=%d\n", len);
fclose(fp);
return 0;
}