long VSIFTell( FILE * fp ) { long nOffset = ftell(fp); #ifdef VSI_DEBUG int nError = errno; VSIDebug2( "VSIFTell(%p) = %ld", fp, nOffset ); errno = nError; #endif return nOffset; }
int VSIFSeek( FILE * fp, long nOffset, int nWhence ) { #ifdef VSI_DEBUG if( nWhence == SEEK_SET ) { VSIDebug2( "VSIFSeek(%p,%d,SEEK_SET)", fp, nOffset ); } else if( nWhence == SEEK_END ) { VSIDebug2( "VSIFSeek(%p,%d,SEEK_END)", fp, nOffset ); } else if( nWhence == SEEK_CUR ) { VSIDebug2( "VSIFSeek(%p,%d,SEEK_CUR)", fp, nOffset ); } else { VSIDebug3( "VSIFSeek(%p,%d,%d-Unknown)", fp, nOffset, nWhence ); } #endif return( fseek( fp, nOffset, nWhence ) ); }
void VSIFFlush( FILE * fp ) { #ifdef VSI_DEBUG VSIDebug1( "VSIFFlush(%p)", fp ); const int result = #endif fflush( fp ); #ifdef VSI_DEBUG // Capture the error rewind ftell to avoid being overwritten by errors // from VSIDebug. const int nError = errno; VSIDebug2( "VSIRewind(%p) errno = %d", fp, nError ); if ( result != 0 ) { CPLError( CE_Failure, CPLE_FileIO, "Flush failed. errno = %d", nError); } errno = nError; #endif }