00001 /**********************************************************************
00002 * $Id: cpl_vsil_unix_stdio_64_cpp-source.html,v 1.5 2002/12/21 19:13:12 warmerda Exp $
00003 *
00004 * Project: CPL - Common Portability Library
00005 * Purpose: Implement VSI large file api for Unix platforms with fseek64()
00006 * and ftell64() such as IRIX.
00007 * Author: Frank Warmerdam, warmerdam@pobox.com
00008 *
00009 **********************************************************************
00010 * Copyright (c) 2001, Frank Warmerdam
00011 *
00012 * Permission is hereby granted, free of charge, to any person obtaining a
00013 * copy of this software and associated documentation files (the "Software"),
00014 * to deal in the Software without restriction, including without limitation
00015 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
00016 * and/or sell copies of the Software, and to permit persons to whom the
00017 * Software is furnished to do so, subject to the following conditions:
00018 *
00019 * The above copyright notice and this permission notice shall be included
00020 * in all copies or substantial portions of the Software.
00021 *
00022 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
00023 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
00024 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
00025 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
00026 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
00027 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
00028 * DEALINGS IN THE SOFTWARE.
00029 **********************************************************************
00030 *
00031 * $Log: cpl_vsil_unix_stdio_64_cpp-source.html,v $
00031 * Revision 1.5 2002/12/21 19:13:12 warmerda
00031 * updated
00031 *
00032 * Revision 1.6 2002/06/17 14:00:16 warmerda
00033 * segregate VSIStatL() and VSIStatBufL.
00034 *
00035 * Revision 1.5 2002/06/15 00:07:23 aubin
00036 * mods to enable 64bit file i/o
00037 *
00038 * Revision 1.4 2001/12/15 17:12:08 warmerda
00039 * pass 64bit seek/tell functions via VSI_F{SEEK,TELL}64 macros
00040 *
00041 * Revision 1.3 2001/07/18 04:00:49 warmerda
00042 * added CPL_CVSID
00043 *
00044 * Revision 1.2 2001/06/21 21:39:32 warmerda
00045 * Fixed typo with rewind.
00046 *
00047 * Revision 1.1 2001/06/21 21:17:15 warmerda
00048 * New
00049 *
00050 */
00051
00052 #include "cpl_vsi.h"
00053
00054 #if defined(UNIX_STDIO_64)
00055
00056 CPL_CVSID("$Id: cpl_vsil_unix_stdio_64_cpp-source.html,v 1.5 2002/12/21 19:13:12 warmerda Exp $");
00057
00058
00059 #ifndef VSI_FTELL64
00060 #define VSI_FTELL64 ftell64
00061 #endif
00062 #ifndef VSI_FSEEK64
00063 #define VSI_FSEEK64 fseek64
00064 #endif
00065
00066 /************************************************************************/
00067 /* VSIFOpen() */
00068 /************************************************************************/
00069
00070 FILE *VSIFOpenL( const char * pszFilename, const char * pszAccess )
00071
00072 {
00073 return fopen64( pszFilename, pszAccess );
00074 }
00075
00076 /************************************************************************/
00077 /* VSIFCloseL() */
00078 /************************************************************************/
00079
00080 int VSIFCloseL( FILE * fp )
00081
00082 {
00083 return VSIFClose( fp );
00084 }
00085
00086 /************************************************************************/
00087 /* VSIFSeekL() */
00088 /************************************************************************/
00089
00090 int VSIFSeekL( FILE * fp, vsi_l_offset nOffset, int nWhence )
00091
00092 {
00093 return( VSI_FSEEK64 ( fp, nOffset, nWhence ) );
00094 }
00095
00096 /************************************************************************/
00097 /* VSIFTellL() */
00098 /************************************************************************/
00099
00100 vsi_l_offset VSIFTellL( FILE * fp )
00101
00102 {
00103 return( VSI_FTELL64 ( fp ) );
00104 }
00105
00106 /************************************************************************/
00107 /* VSIRewindL() */
00108 /************************************************************************/
00109
00110 void VSIRewindL( FILE * fp )
00111
00112 {
00113 VSIRewind( fp );
00114 }
00115
00116 /************************************************************************/
00117 /* VSIFFlushL() */
00118 /************************************************************************/
00119
00120 void VSIFFlushL( FILE * fp )
00121
00122 {
00123 VSIFFlush( fp );
00124 }
00125
00126 /************************************************************************/
00127 /* VSIFReadL() */
00128 /************************************************************************/
00129
00130 size_t VSIFReadL( void * pBuffer, size_t nSize, size_t nCount, FILE * fp )
00131
00132 {
00133 return VSIFRead( pBuffer, nSize, nCount, fp );
00134 }
00135
00136 /************************************************************************/
00137 /* VSIFWriteL() */
00138 /************************************************************************/
00139
00140 size_t VSIFWriteL( void * pBuffer, size_t nSize, size_t nCount, FILE * fp )
00141
00142 {
00143 return VSIFWrite( pBuffer, nSize, nCount, fp );
00144 }
00145
00146 /************************************************************************/
00147 /* VSIFEofL() */
00148 /************************************************************************/
00149
00150 int VSIFEofL( FILE * fp )
00151
00152 {
00153 return VSIFEof( fp );
00154 }
00155
00156 /************************************************************************/
00157 /* VSIStatL() */
00158 /************************************************************************/
00159
00160 int VSIStatL( const char * pszFilename, VSIStatBufL * pStatBuf )
00161
00162 {
00163 return( stat64( pszFilename, pStatBuf ) );
00164 }
00165
00166 #endif /* defined UNIX_STDIO_64 */
00167
1.2.3-20001105 written by Dimitri van Heesch,
© 1997-2000