Поделиться через


_tell, _telli64

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

Синтаксис

long _tell(
   int handle
);
__int64 _telli64(
   int handle
);

Параметры

handle
Дескриптор файла, ссылающийся на открытый файл.

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

Текущая позиция указателя файла. Для устройств, которые не поддерживают поиск, возвращаемое значение не определено.

Возвращаемое значение -1L указывает на ошибку. Если handle является недопустимым дескриптором файла, вызывается обработчик недопустимых параметров, как описано в разделе "Проверка параметров". Если выполнение может быть продолжено, эти функции устанавливают параметр errno в значение EBADF и возвращают –1L.

Дополнительные сведения о кодах возврата см. в разделе errno, _doserrno_sys_errlistи _sys_nerr.

Замечания

Функция _tell получает текущее положение указателя файла (при его наличии), связанного с аргументом handle. Позиция выражается в виде количества байт от начала файла. Для функции _telli64 это значение выражено в виде 64-разрядного целого числа.

По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.

Требования

Маршрут Обязательный заголовок
_tell, _telli64 <io.h>

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

Пример

// crt_tell.c
// This program uses _tell to tell the
// file pointer position after a file read.
//

#include <io.h>
#include <stdio.h>
#include <fcntl.h>
#include <share.h>
#include <string.h>

int main( void )
{
   int  fh;
   char buffer[500];

   if ( _sopen_s( &fh, "crt_tell.txt", _O_RDONLY, _SH_DENYNO, 0) )
   {
      char buff[50];
      _strerror_s( buff, sizeof(buff), NULL );
      printf( buff );
      exit( -1 );
   }

   if( _read( fh, buffer, 500 ) > 0 )
      printf( "Current file position is: %d\n", _tell( fh ) );
   _close( fh );
}

Входные данные: crt_tell.txt

Line one.
Line two.

Выходные данные

Current file position is: 20

См. также

Низкоуровневый ввод-вывод
ftell, _ftelli64
_lseek, _lseeki64