VSIVirtualHandle * VSIUnixStdioFilesystemHandler::Open( const char *pszFilename, const char *pszAccess ) { FILE *fp = VSI_FOPEN64( pszFilename, pszAccess ); int nError = errno; VSIDebug3( "VSIUnixStdioFilesystemHandler::Open(\"%s\",\"%s\") = %p", pszFilename, pszAccess, fp ); if( fp == NULL ) { errno = nError; return NULL; } VSIUnixStdioHandle *poHandle = new VSIUnixStdioHandle; poHandle->fp = fp; poHandle->nOffset = 0; poHandle->bLastOpWrite = FALSE; poHandle->bLastOpRead = FALSE; poHandle->bAtEOF = FALSE; errno = nError; return poHandle; }
VSIVirtualHandle * VSIUnixStdioFilesystemHandler::Open( const char *pszFilename, const char *pszAccess ) { FILE *fp = VSI_FOPEN64( pszFilename, pszAccess ); int nError = errno; VSIDebug3( "VSIUnixStdioFilesystemHandler::Open(\"%s\",\"%s\") = %p", pszFilename, pszAccess, fp ); if( fp == NULL ) { errno = nError; return NULL; } VSIUnixStdioHandle *poHandle = new VSIUnixStdioHandle(this, fp); errno = nError; /* -------------------------------------------------------------------- */ /* If VSI_CACHE is set we want to use a cached reader instead */ /* of more direct io on the underlying file. */ /* -------------------------------------------------------------------- */ if( (EQUAL(pszAccess,"r") || EQUAL(pszAccess,"rb")) && CSLTestBoolean( CPLGetConfigOption( "VSI_CACHE", "FALSE" ) ) ) { return VSICreateCachedFile( poHandle ); } else { return poHandle; } }
VSIVirtualHandle * VSIUnixStdioFilesystemHandler::Open( const char *pszFilename, const char *pszAccess ) { FILE *fp = VSI_FOPEN64( pszFilename, pszAccess ); if( fp == NULL ) return NULL; VSIUnixStdioHandle *poHandle = new VSIUnixStdioHandle; poHandle->fp = fp; return poHandle; }