2

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

1 回答 1

2

两个指针都指向同一个 FILE 结构。如果您愿意,您可以简单地打开文件两次,在这种情况下,指针将完全独立。

于 2014-07-17T15:14:58.447 回答