曲径通幽论坛

标题: ftell() -- 获得当前文件指针位置 [打印本页]

作者: beyes    时间: 2012-8-13 17:35
标题: ftell() -- 获得当前文件指针位置
ftell() 函数原型如下:
[C++] 纯文本查看 复制代码
#include <stdio.h>
long ftell(FILE *stream);

使用该函数可以获得当前操作文件的文件指针位置,其中参数 stream 为打开该文件的文件流指针。

测试代码:
[C++] 纯文本查看 复制代码
#include <stdio.h>

#define NUM_ALPHA 26
#define NUM_CHAR  6

int main(void)
{
        FILE *stream;
        int i;
        char ch;

        char buffer[NUM_ALPHA];
        long position;

        if (( stream = fopen("test.file", "r")) != NULL) {
                for (i = 0; (i < NUM_ALPHA/2) && ((buffer = fgetc(stream)) != EOF); ++i)
                        if (i == NUM_CHAR-1)
                                position = ftell(stream);
                buffer = '\0';
        }
        printf ("Current file position is %d\n", position);
        printf ("Buffer cantains: %s\n", buffer);

        return 0;
}

测试文件 test.file 里包含有 26 个英文小写字符,运行程序输出:
[beyes@beyes   files]$ ./ftell
Current file position is 6
Buffer cantains: abcdefghijklm





欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2