www.pudn.com > mitab-1.5.1.zip > cpl_vsil_unix_stdio_64.cpp
/**********************************************************************
* $Id: cpl_vsil_unix_stdio_64.cpp,v 1.7 2005/04/12 00:27:39 fwarmerdam Exp $
*
* Project: CPL - Common Portability Library
* Purpose: Implement VSI large file api for Unix platforms with fseek64()
* and ftell64() such as IRIX.
* Author: Frank Warmerdam, warmerdam@pobox.com
*
**********************************************************************
* Copyright (c) 2001, Frank Warmerdam
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included
* in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
**********************************************************************
*
* $Log: cpl_vsil_unix_stdio_64.cpp,v $
* Revision 1.7 2005/04/12 00:27:39 fwarmerdam
* added macos large file support
*
* Revision 1.6 2002/06/17 14:00:16 warmerda
* segregate VSIStatL() and VSIStatBufL.
*
* Revision 1.5 2002/06/15 00:07:23 aubin
* mods to enable 64bit file i/o
*
* Revision 1.4 2001/12/15 17:12:08 warmerda
* pass 64bit seek/tell functions via VSI_F{SEEK,TELL}64 macros
*
* Revision 1.3 2001/07/18 04:00:49 warmerda
* added CPL_CVSID
*
* Revision 1.2 2001/06/21 21:39:32 warmerda
* Fixed typo with rewind.
*
* Revision 1.1 2001/06/21 21:17:15 warmerda
* New
*
*/
#include "cpl_vsi.h"
#if defined(UNIX_STDIO_64)
CPL_CVSID("$Id: cpl_vsil_unix_stdio_64.cpp,v 1.7 2005/04/12 00:27:39 fwarmerdam Exp $");
#ifndef VSI_FTELL64
#define VSI_FTELL64 ftell64
#endif
#ifndef VSI_FSEEK64
#define VSI_FSEEK64 fseek64
#endif
#ifndef VSI_FOPEN64
#define VSI_FOPEN64 fopen64
#endif
#ifndef VSI_STAT64
#define VSI_STAT64 stat64
#endif
#ifndef VSI_STAT64_T
#define VSI_STAT64_T stat64
#endif
/************************************************************************/
/* VSIFOpen() */
/************************************************************************/
FILE *VSIFOpenL( const char * pszFilename, const char * pszAccess )
{
return VSI_FOPEN64( pszFilename, pszAccess );
}
/************************************************************************/
/* VSIFCloseL() */
/************************************************************************/
int VSIFCloseL( FILE * fp )
{
return VSIFClose( fp );
}
/************************************************************************/
/* VSIFSeekL() */
/************************************************************************/
int VSIFSeekL( FILE * fp, vsi_l_offset nOffset, int nWhence )
{
return( VSI_FSEEK64 ( fp, nOffset, nWhence ) );
}
/************************************************************************/
/* VSIFTellL() */
/************************************************************************/
vsi_l_offset VSIFTellL( FILE * fp )
{
return( VSI_FTELL64 ( fp ) );
}
/************************************************************************/
/* VSIRewindL() */
/************************************************************************/
void VSIRewindL( FILE * fp )
{
VSIRewind( fp );
}
/************************************************************************/
/* VSIFFlushL() */
/************************************************************************/
void VSIFFlushL( FILE * fp )
{
VSIFFlush( fp );
}
/************************************************************************/
/* VSIFReadL() */
/************************************************************************/
size_t VSIFReadL( void * pBuffer, size_t nSize, size_t nCount, FILE * fp )
{
return VSIFRead( pBuffer, nSize, nCount, fp );
}
/************************************************************************/
/* VSIFWriteL() */
/************************************************************************/
size_t VSIFWriteL( void * pBuffer, size_t nSize, size_t nCount, FILE * fp )
{
return VSIFWrite( pBuffer, nSize, nCount, fp );
}
/************************************************************************/
/* VSIFEofL() */
/************************************************************************/
int VSIFEofL( FILE * fp )
{
return VSIFEof( fp );
}
/************************************************************************/
/* VSIStatL() */
/************************************************************************/
int VSIStatL( const char * pszFilename, VSIStatBufL * pStatBuf )
{
return( VSI_STAT64( pszFilename, pStatBuf ) );
}
#endif /* defined UNIX_STDIO_64 */