函式
<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檔案的大小(以位元組為單位,在支援的系統上)。

另見