ftell, _ftelli64

Получает текущую позицию указателя файла.

long ftell( 
   FILE *stream 
);
__int64 _ftelli64( 
   FILE *stream 
);

Параметры

  • stream
    Цель FILE структура.

Возвращаемое значение

ftell и _ftelli64 возвращает позицию текущего файла.Значение, возвращаемое оператором ftell и _ftelli64 не удалось отразить физическое смещение байтов для потоков, открытых в режиме текста, поскольку текстовый режим возвращени-перевода вызывает преобразование строки экипажа.Используйте ftell с fseekOR_ftelli64с_fseeki64 вернуться к расположениям файла правильно.При ошибке ftellи_ftelli64 вызовите недопустимый обработчик параметра, как описано в разделе Проверка параметров.Если выполнение может быть продолжено, то эти функции возвращают - 1L и задают errno одной из констант определяется в ERRNO.H 2.EBADF константа означает stream аргумент не является допустимым значением указателя файла, либо не относится к открытому файлу.EINVAL означает недопустимое stream аргумент передан функции.В устройствах неспособных поиска (как стержни и принтеров) или stream не относится к открытому файлу, возвращаемое значение препроцессора.

См. _doserrno, errno, _sys_errlist и _sys_nerr дополнительные сведения об этих и других, кодов возврата.

Заметки

ftell и _ftelli64функции получает текущую позицию указателя файла (если таковые имеются), связанного с stream*.* Позиция смещения выражена в виде относительно начала потока.

Обратите внимание, что при открытии файла для добавления данных, положение текущего файла определяется последней операцией ввода-вывода, где произошла следующая запись.Например, если файл открыт для добавления и последняя операция считана, позиция файла точку, в которой следующая операция чтения запуститьTfа мере, не запуститьTfа, следующая запись.(Если файл открыт для добавления файла, позиция перемещается в конец файла до любой операции записи.) Если ни одна из операций ввода-вывода, пока не произошла в файле, открытом для добавления позиция файла начало файла.

В режиме текст, CTRL+Z, интерпретируется как символ конца файла на входе.В файлах, открытых для чтение/запись fopen весь связанный и проверка процедур для CTRL+Z в конце файла и удаляет его, если это возможно.Это делается, потому что используется комбинация ftell и fseek OR _ftelli64 и _fseeki64, перемещается в файле, который заканчивается CTRL+Z может вызвать ftell OR _ftelli64 функционировать неправильно в конце файла.

Эта функция блокирует вызывающий поток во время выполнения и поэтому потокобезопасным.Для non-блокируя версий см. в разделе _ftell_nolock.

Требования

Функция

Обязательный заголовок

Необязательные заголовки

ftell

<stdio.h>

<errno.h>

_ftelli64

<stdio.h>

<errno.h>

Дополнительные сведения о совместимости см. Совместимость во введении.

Пример

// crt_ftell.c
// This program opens a file named CRT_FTELL.C
// for reading and tries to read 100 characters. It
// then uses ftell to determine the position of the
// file pointer and displays this position.
 

#include <stdio.h>

FILE *stream;

int main( void )
{
   long position;
   char list[100];
   if( fopen_s( &stream, "crt_ftell.c", "rb" ) == 0 )
   {
      // Move the pointer by reading data: 
      fread( list, sizeof( char ), 100, stream );
      // Get position after read: 
      position = ftell( stream );
      printf( "Position after trying to read 100 bytes: %ld\n",
              position );
      fclose( stream );
   }
}
  

Эквивалент в .NET Framework

System:: Ввода-вывода:: FileStream:: Position

См. также

Ссылки

Поток ВВОДА-ВЫВОДА

fopen, _wfopen

fgetpos

fseek, _fseeki64

_lseek, _lseeki64