#include <stdio.h>
void main()
{
FILE *fp;
int i,a[4]={1,2,3,4},b;
fp=fopen("D://jinyi.txt","wb");
for(i=0;i<4;i++)
fwrite(&a[i],sizeof(int),1,fp);
fclose(fp);
fp=fopen("D://jinyi.txt","rb");
/*
fseek(fp,0L*sizeof(int),SEEK_SET);
fread(&b,sizeof(int),1,fp);
printf("fseek(fp,0L*sizeof(int),SEEK_SET) b=%d/n",b);
//fseek(fp,0L,SEEK_CUR);
fseek(fp,1L*sizeof(int),SEEK_SET);
fread(&b,sizeof(int),1,fp);
printf("fseek(fp,1L*sizeof(int),SEEK_SET) b=%d/n",b);
//fseek(fp,0L,SEEK_CUR);
fseek(fp,-2L*sizeof(int),SEEK_END);
fread(&b,sizeof(int),1,fp);
printf("fseek(fp,-2L*sizeof(int),SEEK_END) b=%d/n",b);
//fseek(fp,0L,SEEK_CUR);
fseek(fp,-1L*sizeof(int),SEEK_END);
fread(&b,sizeof(int),1,fp);
printf("fseek(fp,-1L*sizeof(int),SEEK_END) b=%d/n",b);
//fseek(fp,0L,SEEK_CUR);
*/
fseek(fp,0L*sizeof(int),SEEK_END);
fread(&b,sizeof(int),1,fp);
//fseek(fp,0L,SEEK_CUR);
printf("fseek(fp,0L*sizeof(int),SEEK_END) b=%d/n",b);
fclose(fp);
}
///当你一块一块打开注释的时候 BUG 就出现了//
fseek(fp,0L*sizeof(int),SEEK_END);
的值会被前一项的移动的位置所影响.导致read(&b,sizeof(int),1,fp); 不能读出正确的值!