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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? os.h

?? sqlite 3.3.8 支持加密的版本
?? H
?? 第 1 頁 / 共 2 頁
字號:
** LockFile() prevents not just writing but also reading by other processes.** A SHARED_LOCK is obtained by locking a single randomly-chosen ** byte out of a specific range of bytes. The lock byte is obtained at ** random so two separate readers can probably access the file at the ** same time, unless they are unlucky and choose the same lock byte.** An EXCLUSIVE_LOCK is obtained by locking all bytes in the range.** There can only be one writer.  A RESERVED_LOCK is obtained by locking** a single byte of the file that is designated as the reserved lock byte.** A PENDING_LOCK is obtained by locking a designated byte different from** the RESERVED_LOCK byte.**** On WinNT/2K/XP systems, LockFileEx() and UnlockFileEx() are available,** which means we can use reader/writer locks.  When reader/writer locks** are used, the lock is placed on the same range of bytes that is used** for probabilistic locking in Win95/98/ME.  Hence, the locking scheme** will support two or more Win95 readers or two or more WinNT readers.** But a single Win95 reader will lock out all WinNT readers and a single** WinNT reader will lock out all other Win95 readers.**** The following #defines specify the range of bytes used for locking.** SHARED_SIZE is the number of bytes available in the pool from which** a random byte is selected for a shared lock.  The pool of bytes for** shared locks begins at SHARED_FIRST. **** These #defines are available in sqlite_aux.h so that adaptors for** connecting SQLite to other operating systems can use the same byte** ranges for locking.  In particular, the same locking strategy and** byte ranges are used for Unix.  This leaves open the possiblity of having** clients on win95, winNT, and unix all talking to the same shared file** and all locking correctly.  To do so would require that samba (or whatever** tool is being used for file sharing) implements locks correctly between** windows and unix.  I'm guessing that isn't likely to happen, but by** using the same locking range we are at least open to the possibility.**** Locking in windows is manditory.  For this reason, we cannot store** actual data in the bytes used for locking.  The pager never allocates** the pages involved in locking therefore.  SHARED_SIZE is selected so** that all locks will fit on a single page even at the minimum page size.** PENDING_BYTE defines the beginning of the locks.  By default PENDING_BYTE** is set high so that we don't have to allocate an unused page except** for very large databases.  But one should test the page skipping logic ** by setting PENDING_BYTE low and running the entire regression suite.**** Changing the value of PENDING_BYTE results in a subtly incompatible** file format.  Depending on how it is changed, you might not notice** the incompatibility right away, even running a full regression test.** The default location of PENDING_BYTE is the first byte past the** 1GB boundary.***/#ifndef SQLITE_TEST#define PENDING_BYTE      0x40000000  /* First byte past the 1GB boundary */#elseextern unsigned int sqlite3_pending_byte;#define PENDING_BYTE sqlite3_pending_byte#endif#define RESERVED_BYTE     (PENDING_BYTE+1)#define SHARED_FIRST      (PENDING_BYTE+2)#define SHARED_SIZE       510/*** Prototypes for operating system interface routines.*/int sqlite3OsClose(OsFile**);int sqlite3OsOpenDirectory(OsFile*, const char*);int sqlite3OsRead(OsFile*, void*, int amt);int sqlite3OsWrite(OsFile*, const void*, int amt);int sqlite3OsSeek(OsFile*, i64 offset);int sqlite3OsTruncate(OsFile*, i64 size);int sqlite3OsSync(OsFile*, int);void sqlite3OsSetFullSync(OsFile *id, int setting);int sqlite3OsFileHandle(OsFile *id);int sqlite3OsFileSize(OsFile*, i64 *pSize);int sqlite3OsLock(OsFile*, int);int sqlite3OsUnlock(OsFile*, int);int sqlite3OsLockState(OsFile *id);int sqlite3OsCheckReservedLock(OsFile *id);int sqlite3OsOpenReadWrite(const char*, OsFile**, int*);int sqlite3OsOpenExclusive(const char*, OsFile**, int);int sqlite3OsOpenReadOnly(const char*, OsFile**);int sqlite3OsDelete(const char*);int sqlite3OsFileExists(const char*);char *sqlite3OsFullPathname(const char*);int sqlite3OsIsDirWritable(char*);int sqlite3OsSyncDirectory(const char*);int sqlite3OsTempFileName(char*);int sqlite3OsRandomSeed(char*);int sqlite3OsSleep(int ms);int sqlite3OsCurrentTime(double*);void sqlite3OsEnterMutex(void);void sqlite3OsLeaveMutex(void);int sqlite3OsInMutex(int);ThreadData *sqlite3OsThreadSpecificData(int);void *sqlite3OsMalloc(int);void *sqlite3OsRealloc(void *, int);void sqlite3OsFree(void *);int sqlite3OsAllocationSize(void *);/*** If the SQLITE_ENABLE_REDEF_IO macro is defined, then the OS-layer** interface routines are not called directly but are invoked using** pointers to functions.  This allows the implementation of various** OS-layer interface routines to be modified at run-time.  There are** obscure but legitimate reasons for wanting to do this.  But for** most users, a direct call to the underlying interface is preferable** so the the redefinable I/O interface is turned off by default.*/#ifdef SQLITE_ENABLE_REDEF_IO/*** When redefinable I/O is enabled, a single global instance of the** following structure holds pointers to the routines that SQLite ** uses to talk with the underlying operating system.  Modify this** structure (before using any SQLite API!) to accomodate perculiar** operating system interfaces or behaviors.*/struct sqlite3OsVtbl {  int (*xOpenReadWrite)(const char*, OsFile**, int*);  int (*xOpenExclusive)(const char*, OsFile**, int);  int (*xOpenReadOnly)(const char*, OsFile**);  int (*xDelete)(const char*);  int (*xFileExists)(const char*);  char *(*xFullPathname)(const char*);  int (*xIsDirWritable)(char*);  int (*xSyncDirectory)(const char*);  int (*xTempFileName)(char*);  int (*xRandomSeed)(char*);  int (*xSleep)(int ms);  int (*xCurrentTime)(double*);  void (*xEnterMutex)(void);  void (*xLeaveMutex)(void);  int (*xInMutex)(int);  ThreadData *(*xThreadSpecificData)(int);  void *(*xMalloc)(int);  void *(*xRealloc)(void *, int);  void (*xFree)(void *);  int (*xAllocationSize)(void *);};/* Macro used to comment out routines that do not exists when there is** no disk I/O */#ifdef SQLITE_OMIT_DISKIO# define IF_DISKIO(X)  0#else# define IF_DISKIO(X)  X#endif#ifdef _SQLITE_OS_C_  /*  ** The os.c file implements the global virtual function table.  */  struct sqlite3OsVtbl sqlite3Os = {    IF_DISKIO( sqlite3OsOpenReadWrite ),    IF_DISKIO( sqlite3OsOpenExclusive ),    IF_DISKIO( sqlite3OsOpenReadOnly ),    IF_DISKIO( sqlite3OsDelete ),    IF_DISKIO( sqlite3OsFileExists ),    IF_DISKIO( sqlite3OsFullPathname ),    IF_DISKIO( sqlite3OsIsDirWritable ),    IF_DISKIO( sqlite3OsSyncDirectory ),    IF_DISKIO( sqlite3OsTempFileName ),    sqlite3OsRandomSeed,    sqlite3OsSleep,    sqlite3OsCurrentTime,    sqlite3OsEnterMutex,    sqlite3OsLeaveMutex,    sqlite3OsInMutex,    sqlite3OsThreadSpecificData,    sqlite3OsMalloc,    sqlite3OsRealloc,    sqlite3OsFree,    sqlite3OsAllocationSize  };#else  /*  ** Files other than os.c just reference the global virtual function table.   */  extern struct sqlite3OsVtbl sqlite3Os;#endif /* _SQLITE_OS_C_ *//* This additional API routine is available with redefinable I/O */struct sqlite3OsVtbl *sqlite3_os_switch(void);/*** Redefine the OS interface to go through the virtual function table** rather than calling routines directly.*/#undef sqlite3OsOpenReadWrite#undef sqlite3OsOpenExclusive#undef sqlite3OsOpenReadOnly#undef sqlite3OsDelete#undef sqlite3OsFileExists#undef sqlite3OsFullPathname#undef sqlite3OsIsDirWritable#undef sqlite3OsSyncDirectory#undef sqlite3OsTempFileName#undef sqlite3OsRandomSeed#undef sqlite3OsSleep#undef sqlite3OsCurrentTime#undef sqlite3OsEnterMutex#undef sqlite3OsLeaveMutex#undef sqlite3OsInMutex#undef sqlite3OsThreadSpecificData#undef sqlite3OsMalloc#undef sqlite3OsRealloc#undef sqlite3OsFree#undef sqlite3OsAllocationSize#define sqlite3OsOpenReadWrite      sqlite3Os.xOpenReadWrite#define sqlite3OsOpenExclusive      sqlite3Os.xOpenExclusive#define sqlite3OsOpenReadOnly       sqlite3Os.xOpenReadOnly#define sqlite3OsDelete             sqlite3Os.xDelete#define sqlite3OsFileExists         sqlite3Os.xFileExists#define sqlite3OsFullPathname       sqlite3Os.xFullPathname#define sqlite3OsIsDirWritable      sqlite3Os.xIsDirWritable#define sqlite3OsSyncDirectory      sqlite3Os.xSyncDirectory#define sqlite3OsTempFileName       sqlite3Os.xTempFileName#define sqlite3OsRandomSeed         sqlite3Os.xRandomSeed#define sqlite3OsSleep              sqlite3Os.xSleep#define sqlite3OsCurrentTime        sqlite3Os.xCurrentTime#define sqlite3OsEnterMutex         sqlite3Os.xEnterMutex#define sqlite3OsLeaveMutex         sqlite3Os.xLeaveMutex#define sqlite3OsInMutex            sqlite3Os.xInMutex#define sqlite3OsThreadSpecificData sqlite3Os.xThreadSpecificData#define sqlite3OsMalloc             sqlite3Os.xMalloc#define sqlite3OsRealloc            sqlite3Os.xRealloc#define sqlite3OsFree               sqlite3Os.xFree#define sqlite3OsAllocationSize     sqlite3Os.xAllocationSize#endif /* SQLITE_ENABLE_REDEF_IO */#endif /* _SQLITE_OS_H_ */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩电影免费在线看| 在线精品视频免费播放| 在线亚洲精品福利网址导航| 精品av综合导航| 亚洲免费观看高清| 东方aⅴ免费观看久久av| 欧美一卡二卡在线观看| 亚洲美女电影在线| 成人看片黄a免费看在线| 这里只有精品免费| 亚洲福中文字幕伊人影院| 成人av在线一区二区| xfplay精品久久| 蜜桃一区二区三区在线| 欧美日韩成人综合天天影院| 亚洲欧美一区二区不卡| 成人看片黄a免费看在线| 久久嫩草精品久久久精品| 免费观看91视频大全| 884aa四虎影成人精品一区| 亚洲一本大道在线| 欧美午夜片在线看| 亚洲自拍偷拍欧美| 在线看一区二区| 亚洲精品一二三| 97成人超碰视| 亚洲视频电影在线| 日本韩国欧美在线| 一区二区三区精密机械公司| 91福利社在线观看| 亚洲精品综合在线| 欧美性欧美巨大黑白大战| 亚洲一区二区三区中文字幕| 欧美性猛交xxxxxx富婆| 一级特黄大欧美久久久| 在线欧美日韩国产| 日韩专区中文字幕一区二区| 欧美一级精品在线| 国产在线精品免费| 国产日韩欧美制服另类| 白白色 亚洲乱淫| 亚洲美女免费在线| 欧美精品aⅴ在线视频| 青青草精品视频| 久久久久久久久久久黄色| 国产精华液一区二区三区| 中文字幕高清不卡| 91久久国产综合久久| 亚洲一区二区三区视频在线 | 风间由美一区二区av101| 久久久99免费| 99精品国产91久久久久久 | 色噜噜久久综合| 亚洲一区二区视频在线| 欧美一级艳片视频免费观看| 麻豆国产欧美日韩综合精品二区| 精品成人佐山爱一区二区| 国产精品一区二区久激情瑜伽| 国产精品免费av| 欧美精品在线观看播放| 国产伦精品一区二区三区视频青涩 | 天堂久久一区二区三区| 欧美成人a视频| 99久久精品一区| 日韩激情在线观看| 国产精品久久久久久亚洲毛片 | 美女尤物国产一区| 欧美激情资源网| 欧美三级电影在线观看| 国产一区二区三区在线观看免费| 日韩一区欧美一区| 日韩欧美一区中文| 99国产精品久久久| 久久99精品久久久久婷婷| 亚洲欧美激情插| 精品久久久久久久久久久久久久久 | 欧美一级日韩免费不卡| 成人高清在线视频| 青娱乐精品在线视频| 日韩美女啊v在线免费观看| 日韩欧美视频在线| 欧美午夜精品久久久久久超碰| 国产成人精品影视| 秋霞电影网一区二区| 亚洲免费观看高清完整版在线| 欧美xingq一区二区| 欧美色图12p| 99久久久免费精品国产一区二区| 精品一区二区三区免费视频| 香蕉成人啪国产精品视频综合网| 国产精品剧情在线亚洲| 精品久久久久99| 欧美老年两性高潮| 91福利社在线观看| 大白屁股一区二区视频| 国产在线精品一区在线观看麻豆| 日韩成人伦理电影在线观看| 亚洲一区自拍偷拍| 亚洲欧美日韩一区二区| 国产精品女主播av| 久久久精品综合| 久久久不卡影院| 精品粉嫩aⅴ一区二区三区四区| 欧美日韩在线播放| 在线视频综合导航| 欧洲视频一区二区| 色噜噜偷拍精品综合在线| 91在线精品一区二区| 成人av中文字幕| 成人动漫一区二区在线| 国产a精品视频| 国产iv一区二区三区| 懂色av中文字幕一区二区三区| 国产一区二区三区精品欧美日韩一区二区三区 | 美女一区二区三区| 日本成人在线不卡视频| 亚洲成av人在线观看| 亚洲一区在线观看网站| 亚洲国产精品综合小说图片区| 亚洲综合成人在线| 日韩精品每日更新| 免费观看成人鲁鲁鲁鲁鲁视频| 免费成人av在线| 国产精品18久久久久久久久久久久| 国产一区二区三区电影在线观看| 国产精品一区专区| 成人ar影院免费观看视频| 91美女精品福利| 欧美人妇做爰xxxⅹ性高电影| 欧美一级日韩一级| 国产日韩精品一区二区浪潮av | 久久婷婷久久一区二区三区| 国产色综合久久| 1024成人网| 无码av免费一区二区三区试看 | 色婷婷精品久久二区二区蜜臂av| 91免费小视频| 在线播放国产精品二区一二区四区| 日韩一级大片在线观看| 国产人成一区二区三区影院| 国产精品久久久久aaaa樱花 | 日韩理论在线观看| 亚洲第一福利一区| 极品少妇xxxx偷拍精品少妇| 国产精品 欧美精品| 在线精品观看国产| 日韩欧美激情一区| 亚洲三级免费电影| 日本欧美在线观看| 99久久婷婷国产精品综合| 欧美放荡的少妇| 国产精品乱码人人做人人爱| 国产精品伦一区| 欧美精品一区二区三| 久久影院午夜论| 日本网站在线观看一区二区三区| 蜜桃av一区二区| 91在线精品一区二区| 国产一区亚洲一区| 日韩女优制服丝袜电影| 视频一区中文字幕国产| 欧美日韩一区不卡| 亚洲成av人在线观看| 欧美日韩一级二级三级| 亚洲国产色一区| 欧美视频日韩视频在线观看| 亚洲国产视频一区| 欧美情侣在线播放| 日韩有码一区二区三区| 91麻豆精品国产综合久久久久久| 亚洲福利视频导航| 91麻豆精品国产91久久久久久久久| 视频一区二区三区在线| 欧美精品免费视频| 麻豆精品国产传媒mv男同| 日韩三级高清在线| 九九精品一区二区| 国产亚洲午夜高清国产拍精品 | 精品99久久久久久| 国产精品一级片在线观看| 久久精品夜夜夜夜久久| 成人国产精品免费| 亚洲精品国产成人久久av盗摄| 欧美性欧美巨大黑白大战| 日韩和欧美的一区| 久久中文娱乐网| 不卡视频在线看| 亚洲国产精品一区二区久久 | 免费欧美日韩国产三级电影| 日韩三级中文字幕| 国产jizzjizz一区二区| 亚洲视频一区在线观看| 欧美日韩国产系列| 国内精品在线播放| 中文字幕在线一区| 91麻豆精品国产综合久久久久久| 国内精品在线播放| 亚洲综合清纯丝袜自拍| 精品欧美乱码久久久久久1区2区| 99视频精品在线|