⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os.c

📁 sqlite-3.4.1,嵌入式数据库.是一个功能强大的开源数据库,给学习和研发以及小型公司的发展带来了全所未有的好处.
💻 C
字号:
/*** 2005 November 29**** The author disclaims copyright to this source code.  In place of** a legal notice, here is a blessing:****    May you do good and not evil.**    May you find forgiveness for yourself and forgive others.**    May you share freely, never taking more than you give.************************************************************************************ This file contains OS interface code that is common to all** architectures.*/#define _SQLITE_OS_C_ 1#include "sqliteInt.h"#include "os.h"#undef _SQLITE_OS_C_/*** The following routines are convenience wrappers around methods** of the OsFile object.  This is mostly just syntactic sugar.  All** of this would be completely automatic if SQLite were coded using** C++ instead of plain old C.*/int sqlite3OsClose(OsFile **pId){  OsFile *id;  if( pId!=0 && (id = *pId)!=0 ){    return id->pMethod->xClose(pId);  }else{    return SQLITE_OK;  }}int sqlite3OsOpenDirectory(OsFile *id, const char *zName){  return id->pMethod->xOpenDirectory(id, zName);}int sqlite3OsRead(OsFile *id, void *pBuf, int amt){  return id->pMethod->xRead(id, pBuf, amt);}int sqlite3OsWrite(OsFile *id, const void *pBuf, int amt){  return id->pMethod->xWrite(id, pBuf, amt);}int sqlite3OsSeek(OsFile *id, i64 offset){  return id->pMethod->xSeek(id, offset);}int sqlite3OsTruncate(OsFile *id, i64 size){  return id->pMethod->xTruncate(id, size);}int sqlite3OsSync(OsFile *id, int fullsync){  return id->pMethod->xSync(id, fullsync);}void sqlite3OsSetFullSync(OsFile *id, int value){  id->pMethod->xSetFullSync(id, value);}int sqlite3OsFileSize(OsFile *id, i64 *pSize){  return id->pMethod->xFileSize(id, pSize);}int sqlite3OsLock(OsFile *id, int lockType){  return id->pMethod->xLock(id, lockType);}int sqlite3OsUnlock(OsFile *id, int lockType){  return id->pMethod->xUnlock(id, lockType);}int sqlite3OsCheckReservedLock(OsFile *id){  return id->pMethod->xCheckReservedLock(id);}int sqlite3OsSectorSize(OsFile *id){  int (*xSectorSize)(OsFile*) = id->pMethod->xSectorSize;  return xSectorSize ? xSectorSize(id) : SQLITE_DEFAULT_SECTOR_SIZE;}#if defined(SQLITE_TEST) || defined(SQLITE_DEBUG)  /* These methods are currently only used for testing and debugging. */  int sqlite3OsFileHandle(OsFile *id){    return id->pMethod->xFileHandle(id);  }  int sqlite3OsLockState(OsFile *id){    return id->pMethod->xLockState(id);  }#endif#ifdef SQLITE_ENABLE_REDEF_IO/*** A function to return a pointer to the virtual function table.** This routine really does not accomplish very much since the** virtual function table is a global variable and anybody who** can call this function can just as easily access the variable** for themselves.  Nevertheless, we include this routine for** backwards compatibility with an earlier redefinable I/O** interface design.*/struct sqlite3OsVtbl *sqlite3_os_switch(void){  return &sqlite3Os;}#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -