如何将FILE指针的位置保存在另一个文件指针的文件中?

时间:2014-07-17 15:05:49

标签: c file file-pointer

我有以下代码,其中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));
}

1 个答案:

答案 0 :(得分:2)

两个指针都指向相同的FILE结构。如果您愿意,您只需打开文件两次,在这种情况下,指针将完全独立。