_tell, _telli64
Получает позицию указателя файла.
long _tell(
int handle
);
__int64 _telli64(
int handle
);
Параметры
- handle
Дескриптор файла, ссылающийся на открытый файл.
Возвращаемое значение
Текущая позиция указателя файла. Для устройств, которые не поддерживают поиск, возвращаемое значение не определено.
Возвращаемое значение –1L указывает на ошибку. Если параметр handle является недопустимым дескриптором файла, вызывается обработчик недопустимых параметров, как описано в разделе Проверка параметров. Если продолжение выполнения разрешено, эти функции устанавливают для errno значение EBADF и возвращают -1L.
См. раздел _doserrno, errno, _sys_errlist, and _sys_nerr для дополнительных сведений по этим и другим кодам возврата.
Заметки
Функция _tell получает текущее положение указателя файла (при его наличии), связанного с аргументом handle. Позиция представлена в виде количества байт от начала файла. Для функции _telli64 это значение выражено в виде 64-разрядного целого числа.
Требования
Подпрограмма |
Обязательный заголовок |
---|---|
_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.
Output
Current file position is: 20