_tell
, _telli64
Pobierz położenie wskaźnika pliku.
Składnia
long _tell(
int handle
);
__int64 _telli64(
int handle
);
Parametry
handle
Deskryptor plików odwołujący się do otwartego pliku.
Wartość zwracana
Bieżąca pozycja wskaźnika pliku. Na urządzeniach, których nie można szukać, wartość zwracana jest niezdefiniowana.
Zwracana wartość -1L wskazuje błąd. Jeśli handle
jest nieprawidłowym deskryptorem pliku, wywoływana jest nieprawidłowa procedura obsługi parametrów, zgodnie z opisem w temacie Weryfikacja parametrów. Jeśli wykonywanie jest dozwolone do kontynuowania, te funkcje są ustawione errno
na EBADF
i zwracają -1L.
Aby uzyskać więcej informacji na temat kodów zwracanych, zobacz errno
, _doserrno
, _sys_errlist
i _sys_nerr
.
Uwagi
Funkcja _tell
pobiera bieżącą pozycję wskaźnika pliku (jeśli istnieje) skojarzonego z argumentem handle
. Pozycja jest wyrażona jako liczba bajtów od początku pliku. _telli64
Dla funkcji ta wartość jest wyrażona jako 64-bitowa liczba całkowita.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
Procedura | Wymagany nagłówek |
---|---|
_tell , _telli64 |
<io.h> |
Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.
Przykład
// 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 );
}
Dane wejściowe: crt_tell.txt
Line one.
Line two.
Wynik
Current file position is: 20