_tell、_telli64
ファイル ポインターの位置を取得します。
long _tell(
int handle
);
__int64 _telli64(
int handle
);
パラメーター
- handle
開いているファイルを参照するファイル記述子。
戻り値
ファイル ポインターの現在位置を返します。 シークできないデバイスの場合、戻り値は未定義です。
戻り値 –1L はエラーを意味します。 handle が無効なファイル記述子の場合は、「パラメーターの検証」に説明されているように、無効なパラメーター ハンドラーが呼び出されます。 実行の継続が許可された場合、これらの関数は errno を EBADF に設定し、-1L を返します。
戻り値の詳細については、「_doserrno、errno、_sys_errlist、および _sys_nerr」を参照してください。
解説
_tell 関数は、handle 引数に関連付けられているファイル ポインターがある場合に、その現在位置を取得します。 位置は、ファイルの先頭からのバイト数で表されます。 _telli64 関数の場合、この値は 64 ビット整数で表されます。
必要条件
ルーチン |
必須ヘッダー |
---|---|
_tell, _telli64 |
<io.h> |
互換性の詳細については、「C ランタイム ライブラリ」の「互換性」を参照してください。
使用例
// 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