检索指向原始位置的文件指针

时间:2015-10-16 22:54:47

标签: c

我的函数接收一个文件(FILE * f),该文件已被读取,直到某个位置(未知的字节数)。在我的函数中我也读了一些东西,所以位置指针改变了,但是在函数的最后我想把它保留在原来的位置,所以下一次读取将从我收到文件的位置开始。

我知道,我可以把指针指向我想要的任何地方,但问题是我不知道哪个是原来的位置......

实施例: file.txt => " ABCDEFGHIJKLMOPQRSTUVWXYZ"

有人读取前3个字符,所以我的函数收到指向D的文件。我读了4个字符并用它们做任何事情,所以现在位置是H,但我希望它把它带回D.

1 个答案:

答案 0 :(得分:1)

正如人们在评论中告诉我的那样:

void myFunction(FILE* f) {
    long position;
    position = ftell(f);
    /*
     * Do stuff
    */
    fseek(f,position,SEEK_SET);
}