我有以下代码,其中tmp
FILE *
未保留fp
的先前位置(即0)。当我使用fp
时,它实际上随fseek()
一起变化。
输出:
fp=0 fp=40 tmp=40
如何让tmp
保持原始位置?
main()
{
FILE *fp,*tmp;
char *name;
name=getfilename();
if((fp=fopen(name,"wb"))==NULL)
{
puts("\n CAN'T OPEN FILE FOR SAVING...\n");
return ;
}
printf("fp=%ld",ftell(fp));
tmp=fp;
fseek(fp,sizeof(int)*10,SEEK_SET);
printf("fp=%ld tmp=%ld",ftell(fp),ftell(tmp));
}
答案 0 :(得分:2)
两个指针都指向相同的FILE结构。如果您愿意,您只需打开文件两次,在这种情况下,指针将完全独立。