微软的_tell函数实现
Wentao Sun. Autodesk, Inc. (Shanghai, China.)
微软的_tell函数可以根据handle (int)返回当前文件操作指针的位置。
在Linux和Mac OS X上没有类似的函数,其实其内部实现也不是特别的复杂。
PS:
Linux和Mac OS X上的类似概念为ftell,但是其传入的第一个参数为FILE*,这里为int.
/***
*tell.c - find file position
*
* Copyright (c) Microsoft Corporation. All rights reserved.
*
*Purpose:
* contains _tell() - find file position
*
*******************************************************************************/
#include <cruntime.h>
#include <io.h>
/***
*long _tell(filedes) - find file position
*
*Purpose:
* Gets the current position of the file pointer (no adjustment
* for buffering).
*
*Entry:
* int filedes - file handle of file
*
*Exit:
* returns file position or -1L (sets errno) if bad file descriptor or
* pipe
*
*Exceptions:
*
*******************************************************************************/
long __cdecl _tell (
int filedes
)
{
return(_lseek(filedes,0L,1));
}
*tell.c - find file position
*
* Copyright (c) Microsoft Corporation. All rights reserved.
*
*Purpose:
* contains _tell() - find file position
*
*******************************************************************************/
#include <cruntime.h>
#include <io.h>
/***
*long _tell(filedes) - find file position
*
*Purpose:
* Gets the current position of the file pointer (no adjustment
* for buffering).
*
*Entry:
* int filedes - file handle of file
*
*Exit:
* returns file position or -1L (sets errno) if bad file descriptor or
* pipe
*
*Exceptions:
*
*******************************************************************************/
long __cdecl _tell (
int filedes
)
{
return(_lseek(filedes,0L,1));
}