函数
<cstdio>

ftell

long int ftell ( FILE * stream );
获取流中的当前位置
返回的位置指示器的当前值。

对于二进制流,这是从文件开头算起的字节数。

对于文本流,该数值可能没有意义,但仍可用于稍后使用 fseek 将位置恢复到相同位置(如果仍有待读取的、通过 ungetc 放回的字符,则行为是未定义的)。

参数

指向一个 FILE 对象的指针,该对象标识了流。

返回值

成功时,返回位置指示器的当前值。
失败时,-1L将被返回,并且 errno 会被设置为一个系统特定的正值。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/* ftell example : getting size of a file */
#include <stdio.h>

int main ()
{
  FILE * pFile;
  long size;

  pFile = fopen ("myfile.txt","rb");
  if (pFile==NULL) perror ("Error opening file");
  else
  {
    fseek (pFile, 0, SEEK_END);   // non-portable
    size=ftell (pFile);
    fclose (pFile);
    printf ("Size of myfile.txt: %ld bytes.\n",size);
  }
  return 0;
}

此程序打印出myfile.txt文件的大小(以字节为单位,在支持的系统上)。

另见