www.pudn.com > mitab.rar > 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 */