亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cpl_vsisimple.cpp

?? mitab,讀取MapInfo的地圖文件
?? CPP
字號(hào):
/******************************************************************************
 * $Id: cpl_vsisimple.cpp 10646 2007-01-18 02:38:10Z warmerdam $
 *
 * Project:  Common Portability Library
 * Purpose:  Simple implementation of POSIX VSI functions.
 * Author:   Frank Warmerdam, warmerdam@pobox.com
 *
 ******************************************************************************
 * Copyright (c) 1998, 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.
 ****************************************************************************/

#include "cpl_config.h"
#include "cpl_port.h"
#include "cpl_vsi.h"
#include "cpl_error.h"

CPL_CVSID("$Id: cpl_vsisimple.cpp 10646 2007-01-18 02:38:10Z warmerdam $");

/* for stat() */

/* Unix or Windows NT/2000/XP */
#if !defined(WIN32) && !defined(WIN32CE)
#  include <unistd.h>
#elif !defined(WIN32CE) /* not Win32 platform */
#  include <io.h>
#  include <fcntl.h>
#  include <direct.h>
#endif

/* Windows CE or other platforms */
#if defined(WIN32CE)
#  include <wce_io.h>
#  include <wce_stat.h>
#  include <wce_stdio.h>
#  include <wce_string.h>
#  include <wce_time.h>
# define time wceex_time
#else
#  include <sys/stat.h>
#  include <time.h>
#endif

/************************************************************************/
/*                              VSIFOpen()                              */
/************************************************************************/

FILE *VSIFOpen( const char * pszFilename, const char * pszAccess )

{
    FILE * fp;

    fp = fopen( (char *) pszFilename, (char *) pszAccess );

    VSIDebug3( "VSIFOpen(%s,%s) = %p", pszFilename, pszAccess, fp );

    return( fp );
}

/************************************************************************/
/*                             VSIFClose()                              */
/************************************************************************/

int VSIFClose( FILE * fp )

{
    VSIDebug1( "VSIClose(%p)", fp );

    return( fclose(fp) );
}

/************************************************************************/
/*                              VSIFSeek()                              */
/************************************************************************/

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 ) );
}

/************************************************************************/
/*                              VSIFTell()                              */
/************************************************************************/

long VSIFTell( FILE * fp )

{
    VSIDebug2( "VSIFTell(%p) = %ld", fp, ftell(fp) );

    return( ftell( fp ) );
}

/************************************************************************/
/*                             VSIRewind()                              */
/************************************************************************/

void VSIRewind( FILE * fp )

{
    VSIDebug1("VSIRewind(%p)", fp );
    rewind( fp );
}

/************************************************************************/
/*                              VSIFRead()                              */
/************************************************************************/

size_t VSIFRead( void * pBuffer, size_t nSize, size_t nCount, FILE * fp )

{
    size_t nResult = fread( pBuffer, nSize, nCount, fp );

    VSIDebug3( "VSIFRead(%p,%ld) = %ld", 
               fp, (long) nSize * nCount, (long) nResult * nSize );

    return nResult;
}

/************************************************************************/
/*                             VSIFWrite()                              */
/************************************************************************/

size_t VSIFWrite( const void *pBuffer, size_t nSize, size_t nCount, FILE * fp )

{
    size_t nResult = fwrite( pBuffer, nSize, nCount, fp );

    VSIDebug3( "VSIFWrite(%p,%ld) = %ld", 
               fp, (long) nSize * nCount, (long) nResult );

    return nResult;
}

/************************************************************************/
/*                             VSIFFlush()                              */
/************************************************************************/

void VSIFFlush( FILE * fp )

{
    VSIDebug1( "VSIFFlush(%p)", fp );
    fflush( fp );
}

/************************************************************************/
/*                              VSIFGets()                              */
/************************************************************************/

char *VSIFGets( char *pszBuffer, int nBufferSize, FILE * fp )

{
    return( fgets( pszBuffer, nBufferSize, fp ) );
}

/************************************************************************/
/*                              VSIFGetc()                              */
/************************************************************************/

int VSIFGetc( FILE * fp )

{
    return( fgetc( fp ) );
}

/************************************************************************/
/*                             VSIUngetc()                              */
/************************************************************************/

int VSIUngetc( int c, FILE * fp )

{
    return( ungetc( c, fp ) );
}

/************************************************************************/
/*                             VSIFPrintf()                             */
/*                                                                      */
/*      This is a little more complicated than just calling             */
/*      fprintf() because of the variable arguments.  Instead we        */
/*      have to use vfprintf().                                         */
/************************************************************************/

int     VSIFPrintf( FILE * fp, const char * pszFormat, ... )

{
    va_list     args;
    int         nReturn;

    va_start( args, pszFormat );
    nReturn = vfprintf( fp, pszFormat, args );
    va_end( args );

    return( nReturn );
}

/************************************************************************/
/*                              VSIFEof()                               */
/************************************************************************/

int VSIFEof( FILE * fp )

{
    return( feof( fp ) );
}

/************************************************************************/
/*                              VSIFPuts()                              */
/************************************************************************/

int VSIFPuts( const char * pszString, FILE * fp )

{
    return fputs( pszString, fp );
}

/************************************************************************/
/*                              VSIFPutc()                              */
/************************************************************************/

int VSIFPutc( int nChar, FILE * fp )

{
    return( fputc( nChar, fp ) );
}

/************************************************************************/
/*                             VSICalloc()                              */
/************************************************************************/

void *VSICalloc( size_t nCount, size_t nSize )

{
    return( calloc( nCount, nSize ) );
}

/************************************************************************/
/*                             VSIMalloc()                              */
/************************************************************************/

void *VSIMalloc( size_t nSize )

{
    return( malloc( nSize ) );
}

/************************************************************************/
/*                             VSIRealloc()                             */
/************************************************************************/

void * VSIRealloc( void * pData, size_t nNewSize )

{
    return( realloc( pData, nNewSize ) );
}

/************************************************************************/
/*                              VSIFree()                               */
/************************************************************************/

void VSIFree( void * pData )

{
    if( pData != NULL )
        free( pData );
}

/************************************************************************/
/*                             VSIStrdup()                              */
/************************************************************************/

char *VSIStrdup( const char * pszString )

{
    return( strdup( pszString ) );
}

/************************************************************************/
/*                              VSIStat()                               */
/************************************************************************/

int VSIStat( const char * pszFilename, VSIStatBuf * pStatBuf )

{
#if defined(macos_pre10)
    return -1;
#else
    return( stat( pszFilename, pStatBuf ) );
#endif
}

/************************************************************************/
/*                              VSITime()                               */
/************************************************************************/

unsigned long VSITime( unsigned long * pnTimeToSet )

{
    time_t tTime;
        
    tTime = time( NULL );

    if( pnTimeToSet != NULL )
        *pnTimeToSet = (unsigned long) tTime;

    return (unsigned long) tTime;
}

/************************************************************************/
/*                              VSICTime()                              */
/************************************************************************/

const char *VSICTime( unsigned long nTime )

{
    time_t tTime = (time_t) nTime;

    return (const char *) ctime( &tTime );
}

/************************************************************************/
/*                             VSIGMTime()                              */
/************************************************************************/

struct tm *VSIGMTime( const time_t *pnTime, struct tm *poBrokenTime )
{

#if HAVE_GMTIME_R
    gmtime_r( pnTime, poBrokenTime );
#else
    struct tm   *poTime;
    poTime = gmtime( pnTime );
    memcpy( poBrokenTime, poTime, sizeof(tm) );
#endif

    return poBrokenTime;
}

/************************************************************************/
/*                             VSILocalTime()                           */
/************************************************************************/

struct tm *VSILocalTime( const time_t *pnTime, struct tm *poBrokenTime )
{

#if HAVE_LOCALTIME_R
    localtime_r( pnTime, poBrokenTime );
#else
    struct tm   *poTime;
    poTime = localtime( pnTime );
    memcpy( poBrokenTime, poTime, sizeof(tm) );
#endif

    return poBrokenTime;
}

/************************************************************************/
/*                            VSIStrerror()                             */
/************************************************************************/

char *VSIStrerror( int nErrno )

{
    return strerror( nErrno );
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美色综合影院| 国产三级精品视频| 国产成人av一区二区三区在线 | 丝袜美腿成人在线| 日本一区免费视频| 3atv在线一区二区三区| 成人黄色综合网站| 激情六月婷婷综合| 午夜精品久久久久久久蜜桃app| 日本一区二区电影| 精品精品欲导航| 欧美精品成人一区二区三区四区| 97久久超碰精品国产| 国产在线播放一区三区四| 午夜视频久久久久久| 一区二区三区中文字幕精品精品| 中文字幕精品在线不卡| 精品国产乱码久久久久久影片| 欧美日韩亚洲国产综合| 色老汉av一区二区三区| 丁香六月久久综合狠狠色| 国产一区二区久久| 韩国精品在线观看| 久久成人免费网| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲精品自拍动漫在线| 国产精品国产三级国产专播品爱网| 欧美精品一区二区三区视频| 日韩欧美一级二级三级久久久| 欧美图区在线视频| 欧美日韩亚洲不卡| 欧美日韩美少妇| 欧美性一级生活| 欧美亚洲一区三区| 欧美性猛交xxxxxx富婆| 欧美亚洲一区二区在线观看| 欧美日韩一区二区在线观看| 色天使色偷偷av一区二区| 一本久久精品一区二区| 一本大道久久a久久精品综合| 97se亚洲国产综合在线| 97精品视频在线观看自产线路二| 99r国产精品| 91麻豆国产精品久久| 色综合久久综合网欧美综合网| 91在线无精精品入口| 99re6这里只有精品视频在线观看| 91小视频在线| 欧美亚洲一区三区| 欧美一级精品在线| 久久久精品2019中文字幕之3| 国产无遮挡一区二区三区毛片日本| 久久欧美中文字幕| 国产精品乱子久久久久| 中文字幕一区日韩精品欧美| 亚洲精品成人精品456| 亚洲国产精品久久人人爱蜜臀| 香蕉乱码成人久久天堂爱免费| 午夜精彩视频在线观看不卡| 玖玖九九国产精品| 丁香婷婷综合色啪| 欧美在线小视频| 日韩一区二区三区电影| 国产午夜一区二区三区| 亚洲天堂免费看| 婷婷六月综合亚洲| 国产精品一区二区久激情瑜伽 | 国产乱码精品一区二区三区av| 成人午夜视频在线| 欧美性感一类影片在线播放| 日韩午夜在线播放| 中文字幕日韩av资源站| 亚洲一级二级三级| 狠狠色综合日日| 一本一道久久a久久精品 | 久久久不卡网国产精品二区| 国产精品三级av| 石原莉奈在线亚洲二区| 成人午夜私人影院| 在线不卡欧美精品一区二区三区| 久久夜色精品一区| 亚洲一区自拍偷拍| 国产精品一区二区久久精品爱涩 | 亚洲高清免费观看| 国产福利精品导航| 欧美日韩国产精品成人| 久久久国产综合精品女国产盗摄| 亚洲一区二区三区在线看| 国产伦精一区二区三区| 欧美三级视频在线观看 | 日韩国产精品91| 高清不卡在线观看| 制服丝袜日韩国产| 国产精品久久久久久久第一福利| 日本不卡视频在线| 色系网站成人免费| 日本一区二区三级电影在线观看 | 成人福利电影精品一区二区在线观看| 欧美亚洲丝袜传媒另类| 欧美国产精品劲爆| 美女网站色91| 欧美丝袜丝交足nylons| 国产亚洲精品精华液| 日本中文在线一区| 色婷婷亚洲一区二区三区| 久久看人人爽人人| 免费人成黄页网站在线一区二区| 91久久香蕉国产日韩欧美9色| 久久亚洲精精品中文字幕早川悠里 | 亚洲欧美日韩电影| 国产成人精品亚洲777人妖| 欧美一区二区三区思思人| 亚洲视频狠狠干| av在线播放成人| 国产精品乱子久久久久| 国产经典欧美精品| 精品久久久久久无| 麻豆国产欧美日韩综合精品二区 | 91麻豆精品国产自产在线 | 在线91免费看| 亚洲一区二区三区小说| 色综合久久天天| 亚洲视频免费在线观看| 成人福利电影精品一区二区在线观看 | 91国在线观看| 亚洲欧美日韩在线播放| 成人app网站| 亚洲欧美自拍偷拍| 成人aa视频在线观看| 久久久久成人黄色影片| 国产高清一区日本| 欧美国产精品一区二区| 成人听书哪个软件好| 国产精品久久久久久久久果冻传媒| 高清视频一区二区| 国产精品久久久久久福利一牛影视| 国产成人精品aa毛片| 国产欧美日韩视频一区二区| 韩国av一区二区三区四区| 欧美精品一区二区高清在线观看| 国产资源在线一区| 国产日本一区二区| 99久久婷婷国产综合精品| 亚洲色图一区二区三区| 在线一区二区三区| 午夜精品免费在线| 日韩一区二区麻豆国产| 精品夜夜嗨av一区二区三区| 2019国产精品| 成+人+亚洲+综合天堂| 亚洲欧美日韩国产另类专区| 欧美日韩亚洲综合一区| 久久aⅴ国产欧美74aaa| 久久九九全国免费| 99久久伊人网影院| 五月天一区二区| 精品国产免费人成在线观看| 成人午夜激情片| 亚洲激情男女视频| 欧美一级一区二区| 丁香网亚洲国际| 亚洲电影激情视频网站| 日韩一级黄色片| 成人app网站| 水野朝阳av一区二区三区| 日韩欧美一区二区在线视频| 国产成人在线免费| 樱花草国产18久久久久| 8x8x8国产精品| 国产91综合网| 亚洲午夜精品17c| 精品91自产拍在线观看一区| www.av精品| 日韩成人午夜电影| 成人免费在线播放视频| 91精品国产综合久久久蜜臀粉嫩 | 欧美日韩免费视频| 国产高清精品久久久久| 一区二区三区国产精华| 日韩免费观看2025年上映的电影 | 亚洲欧美激情一区二区| 91精品综合久久久久久| 成人丝袜高跟foot| 日韩电影一二三区| 成人欧美一区二区三区小说| 91.com在线观看| 97精品国产露脸对白| 蜜桃传媒麻豆第一区在线观看| 成人欧美一区二区三区黑人麻豆| 911精品产国品一二三产区| www.日韩大片| 美国十次综合导航| 亚洲欧美电影一区二区| xvideos.蜜桃一区二区| 欧美日韩国产片| va亚洲va日韩不卡在线观看| 加勒比av一区二区| 午夜激情一区二区三区| 成人欧美一区二区三区视频网页 | 一本高清dvd不卡在线观看 |