_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