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

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

?? db_file.xs

?? linux 下的源代碼分析閱讀器 red hat公司新版
?? XS
?? 第 1 頁 / 共 4 頁
字號:
/*  DB_File.xs -- Perl 5 interface to Berkeley DB  written by Paul Marquess <pmqs@cpan.org> last modified 4th February 2007 version 1.815 All comments/suggestions/problems are welcome     Copyright (c) 1995-2005 Paul Marquess. All rights reserved.     This program is free software; you can redistribute it and/or     modify it under the same terms as Perl itself. Changes:	0.1 - 	Initial Release	0.2 - 	No longer bombs out if dbopen returns an error.	0.3 - 	Added some support for multiple btree compares	1.0 - 	Complete support for multiple callbacks added.	      	Fixed a problem with pushing a value onto an empty list.	1.01 - 	Fixed a SunOS core dump problem.		The return value from TIEHASH wasn't set to NULL when		dbopen returned an error.	1.02 - 	Use ALIAS to define TIEARRAY.		Removed some redundant commented code.		Merged OS2 code into the main distribution.		Allow negative subscripts with RECNO interface.		Changed the default flags to O_CREAT|O_RDWR	1.03 - 	Added EXISTS	1.04 -  fixed a couple of bugs in hash_cb. Patches supplied by		Dave Hammen, hammen@gothamcity.jsc.nasa.gov	1.05 -  Added logic to allow prefix & hash types to be specified via		Makefile.PL	1.06 -  Minor namespace cleanup: Localized PrintBtree.	1.07 -  Fixed bug with RECNO, where bval wasn't defaulting to "\n". 	1.08 -  No change to DB_File.xs	1.09 -  Default mode for dbopen changed to 0666	1.10 -  Fixed fd method so that it still returns -1 for		in-memory files when db 1.86 is used.	1.11 -  No change to DB_File.xs	1.12 -  No change to DB_File.xs	1.13 -  Tidied up a few casts.     	1.14 -	Made it illegal to tie an associative array to a RECNO		database and an ordinary array to a HASH or BTREE database.	1.50 -  Make work with both DB 1.x or DB 2.x	1.51 -  Fixed a bug in mapping 1.x O_RDONLY flag to 2.x DB_RDONLY equivalent	1.52 -  Patch from Gisle Aas <gisle@aas.no> to suppress "use of 		undefined value" warning with db_get and db_seq.	1.53 -  Added DB_RENUMBER to flags for recno.	1.54 -  Fixed bug in the fd method        1.55 -  Fix for AIX from Jarkko Hietaniemi        1.56 -  No change to DB_File.xs        1.57 -  added the #undef op to allow building with Threads support.	1.58 -  Fixed a problem with the use of sv_setpvn. When the		size is specified as 0, it does a strlen on the data.		This was ok for DB 1.x, but isn't for DB 2.x.        1.59 -  No change to DB_File.xs        1.60 -  Some code tidy up        1.61 -  added flagSet macro for DB 2.5.x		fixed typo in O_RDONLY test.        1.62 -  No change to DB_File.xs        1.63 -  Fix to alllow DB 2.6.x to build.        1.64 -  Tidied up the 1.x to 2.x flags mapping code.		Added a patch from Mark Kettenis <kettenis@wins.uva.nl>		to fix a flag mapping problem with O_RDONLY on the Hurd        1.65 -  Fixed a bug in the PUSH logic.		Added BOOT check that using 2.3.4 or greater        1.66 -  Added DBM filter code        1.67 -  Backed off the use of newSVpvn.		Fixed DBM Filter code for Perl 5.004.		Fixed a small memory leak in the filter code.        1.68 -  fixed backward compatability bug with R_IAFTER & R_IBEFORE		merged in the 5.005_58 changes        1.69 -  fixed a bug in push -- DB_APPEND wasn't working properly.		Fixed the R_SETCURSOR bug introduced in 1.68		Added a new Perl variable $DB_File::db_ver         1.70 -  Initialise $DB_File::db_ver and $DB_File::db_version with 		GV_ADD|GV_ADDMULT -- bug spotted by Nick Ing-Simmons.		Added a BOOT check to test for equivalent versions of db.h &		libdb.a/so.        1.71 -  Support for Berkeley DB version 3.		Support for Berkeley DB 2/3's backward compatability mode.		Rewrote push        1.72 -  No change to DB_File.xs        1.73 -  No change to DB_File.xs        1.74 -  A call to open needed parenthesised to stop it clashing                with a win32 macro.		Added Perl core patches 7703 & 7801.        1.75 -  Fixed Perl core patch 7703.		Added suppport to allow DB_File to be built with 		Berkeley DB 3.2 -- btree_compare, btree_prefix and hash_cb		needed to be changed.        1.76 -  No change to DB_File.xs        1.77 -  Tidied up a few types used in calling newSVpvn.        1.78 -  Core patch 10335, 10372, 10534, 10549, 11051 included.        1.79 -  NEXTKEY ignores the input key.                Added lots of casts        1.800 - Moved backward compatability code into ppport.h.                Use the new constants code.        1.801 - No change to DB_File.xs        1.802 - No change to DB_File.xs        1.803 - FETCH, STORE & DELETE don't map the flags parameter                into the equivalent Berkeley DB function anymore.        1.804 - no change.        1.805 - recursion detection added to the callbacks                Support for 4.1.X added.                Filter code can now cope with read-only $_        1.806 - recursion detection beefed up.        1.807 - no change        1.808 - leak fixed in ParseOpenInfo        1.809 - no change        1.810 - no change        1.811 - no change        1.812 - no change        1.813 - no change        1.814 - no change        1.814 - C++ casting fixes*/#define PERL_NO_GET_CONTEXT#include "EXTERN.h"  #include "perl.h"#include "XSUB.h"#ifdef _NOT_CORE#  include "ppport.h"#endif/* Mention DB_VERSION_MAJOR_CFG, DB_VERSION_MINOR_CFG, and   DB_VERSION_PATCH_CFG here so that Configure pulls them all in. *//* Being the Berkeley DB we prefer the <sys/cdefs.h> (which will be * shortly #included by the <db.h>) __attribute__ to the possibly * already defined __attribute__, for example by GNUC or by Perl. *//* #if DB_VERSION_MAJOR_CFG < 2  */#ifndef DB_VERSION_MAJOR#    undef __attribute__#endif#ifdef COMPAT185#    include <db_185.h>#else#    include <db.h>#endif/* Wall starts with 5.7.x */#if PERL_REVISION > 5 || (PERL_REVISION == 5 && PERL_VERSION >= 7)/* Since we dropped the gccish definition of __attribute__ we will want * to redefine dNOOP, however (so that dTHX continues to work).  Yes, * all this means that we can't do attribute checking on the DB_File, * boo, hiss. */#  ifndef DB_VERSION_MAJOR#    undef  dNOOP#    define dNOOP extern int Perl___notused    /* Ditto for dXSARGS. */#    undef  dXSARGS#    define dXSARGS				\	dSP; dMARK;			\	I32 ax = mark - PL_stack_base + 1;	\	I32 items = sp - mark#  endif/* avoid -Wall; DB_File xsubs never make use of `ix' setup for ALIASes */#  undef dXSI32#  define dXSI32 dNOOP#endif /* Perl >= 5.7 */#include <fcntl.h> /* #define TRACE */#ifdef TRACE#    define Trace(x)        printf x#else#    define Trace(x)#endif#define DBT_clear(x)	Zero(&x, 1, DBT) ;#ifdef DB_VERSION_MAJOR#if DB_VERSION_MAJOR == 2#    define BERKELEY_DB_1_OR_2#endif#if DB_VERSION_MAJOR > 3 || (DB_VERSION_MAJOR == 3 && DB_VERSION_MINOR >= 2)#    define AT_LEAST_DB_3_2#endif#if DB_VERSION_MAJOR > 3 || (DB_VERSION_MAJOR == 3 && DB_VERSION_MINOR >= 3)#    define AT_LEAST_DB_3_3#endif#if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 1)#    define AT_LEAST_DB_4_1#endif#if DB_VERSION_MAJOR > 4 || (DB_VERSION_MAJOR == 4 && DB_VERSION_MINOR >= 3)#    define AT_LEAST_DB_4_3#endif#ifdef AT_LEAST_DB_3_3#   define WANT_ERROR#endif/* map version 2 features & constants onto their version 1 equivalent */#ifdef DB_Prefix_t#    undef DB_Prefix_t#endif#define DB_Prefix_t	size_t#ifdef DB_Hash_t#    undef DB_Hash_t#endif#define DB_Hash_t	u_int32_t/* DBTYPE stays the same *//* HASHINFO, RECNOINFO and BTREEINFO  map to DB_INFO */#if DB_VERSION_MAJOR == 2    typedef DB_INFO	INFO ;#else /* DB_VERSION_MAJOR > 2 */#    define DB_FIXEDLEN	(0x8000)#endif /* DB_VERSION_MAJOR == 2 *//* version 2 has db_recno_t in place of recno_t	*/typedef db_recno_t	recno_t;#define R_CURSOR        DB_SET_RANGE#define R_FIRST         DB_FIRST#define R_IAFTER        DB_AFTER#define R_IBEFORE       DB_BEFORE#define R_LAST          DB_LAST#define R_NEXT          DB_NEXT#define R_NOOVERWRITE   DB_NOOVERWRITE#define R_PREV          DB_PREV#if DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR < 5#  define R_SETCURSOR	0x800000#else#  define R_SETCURSOR	(-100)#endif#define R_RECNOSYNC     0#define R_FIXEDLEN	DB_FIXEDLEN#define R_DUP		DB_DUP#define db_HA_hash 	h_hash#define db_HA_ffactor	h_ffactor#define db_HA_nelem	h_nelem#define db_HA_bsize	db_pagesize#define db_HA_cachesize	db_cachesize#define db_HA_lorder	db_lorder#define db_BT_compare	bt_compare#define db_BT_prefix	bt_prefix#define db_BT_flags	flags#define db_BT_psize	db_pagesize#define db_BT_cachesize	db_cachesize#define db_BT_lorder	db_lorder#define db_BT_maxkeypage#define db_BT_minkeypage#define db_RE_reclen	re_len#define db_RE_flags	flags#define db_RE_bval	re_pad#define db_RE_bfname	re_source#define db_RE_psize	db_pagesize#define db_RE_cachesize	db_cachesize#define db_RE_lorder	db_lorder#define TXN	NULL,#define do_SEQ(db, key, value, flag)	(db->cursor->c_get)(db->cursor, &key, &value, flag)#define DBT_flags(x)	x.flags = 0#define DB_flags(x, v)	x |= v #if DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR < 5#    define flagSet(flags, bitmask)	((flags) & (bitmask))#else#    define flagSet(flags, bitmask)	(((flags) & DB_OPFLAGS_MASK) == (bitmask))#endif#else /* db version 1.x */#define BERKELEY_DB_1#define BERKELEY_DB_1_OR_2typedef union INFO {        HASHINFO 	hash ;        RECNOINFO 	recno ;        BTREEINFO 	btree ;      } INFO ;#ifdef mDB_Prefix_t #  ifdef DB_Prefix_t#    undef DB_Prefix_t#  endif#  define DB_Prefix_t	mDB_Prefix_t #endif#ifdef mDB_Hash_t#  ifdef DB_Hash_t#    undef DB_Hash_t#  endif#  define DB_Hash_t	mDB_Hash_t#endif#define db_HA_hash 	hash.hash#define db_HA_ffactor	hash.ffactor#define db_HA_nelem	hash.nelem#define db_HA_bsize	hash.bsize#define db_HA_cachesize	hash.cachesize#define db_HA_lorder	hash.lorder#define db_BT_compare	btree.compare#define db_BT_prefix	btree.prefix#define db_BT_flags	btree.flags#define db_BT_psize	btree.psize#define db_BT_cachesize	btree.cachesize#define db_BT_lorder	btree.lorder#define db_BT_maxkeypage btree.maxkeypage#define db_BT_minkeypage btree.minkeypage#define db_RE_reclen	recno.reclen#define db_RE_flags	recno.flags#define db_RE_bval	recno.bval#define db_RE_bfname	recno.bfname#define db_RE_psize	recno.psize#define db_RE_cachesize	recno.cachesize#define db_RE_lorder	recno.lorder#define TXN	#define do_SEQ(db, key, value, flag)	(db->dbp->seq)(db->dbp, &key, &value, flag)#define DBT_flags(x)	#define DB_flags(x, v)	#define flagSet(flags, bitmask)        ((flags) & (bitmask))#endif /* db version 1 */#define db_DELETE(db, key, flags)       ((db->dbp)->del)(db->dbp, TXN &key, 0)#define db_STORE(db, key, value, flags) ((db->dbp)->put)(db->dbp, TXN &key, &value, 0)#define db_FETCH(db, key, flags)        ((db->dbp)->get)(db->dbp, TXN &key, &value, 0)#define db_sync(db, flags)              ((db->dbp)->sync)(db->dbp, flags)#define db_get(db, key, value, flags)   ((db->dbp)->get)(db->dbp, TXN &key, &value, flags)#ifdef DB_VERSION_MAJOR#define db_DESTROY(db)                  (!db->aborted && ( db->cursor->c_close(db->cursor),\					  (db->dbp->close)(db->dbp, 0) ))#define db_close(db)			((db->dbp)->close)(db->dbp, 0)#define db_del(db, key, flags)          (flagSet(flags, R_CURSOR) 					\						? ((db->cursor)->c_del)(db->cursor, 0)		\						: ((db->dbp)->del)(db->dbp, NULL, &key, flags) )#else /* ! DB_VERSION_MAJOR */#define db_DESTROY(db)                  (!db->aborted && ((db->dbp)->close)(db->dbp))#define db_close(db)			((db->dbp)->close)(db->dbp)#define db_del(db, key, flags)          ((db->dbp)->del)(db->dbp, &key, flags)#define db_put(db, key, value, flags)   ((db->dbp)->put)(db->dbp, &key, &value, flags)#endif /* ! DB_VERSION_MAJOR */#define db_seq(db, key, value, flags)   do_SEQ(db, key, value, flags)typedef struct {	DBTYPE	type ;	DB * 	dbp ;	SV *	compare ;	bool	in_compare ;	SV *	prefix ;	bool	in_prefix ;	SV *	hash ;	bool	in_hash ;	bool	aborted ;	int	in_memory ;#ifdef BERKELEY_DB_1_OR_2	INFO 	info ;#endif	#ifdef DB_VERSION_MAJOR	DBC *	cursor ;#endif	SV *    filter_fetch_key ;	SV *    filter_store_key ;	SV *    filter_fetch_value ;	SV *    filter_store_value ;	int     filtering ;	} DB_File_type;typedef DB_File_type * DB_File ;typedef DBT DBTKEY ;#define my_sv_setpvn(sv, d, s) sv_setpvn(sv, (s ? d : (const char *)""), s)#define OutputValue(arg, name)  					\	{ if (RETVAL == 0) {						\	      SvGETMAGIC(arg) ;          				\	      my_sv_setpvn(arg, (const char *)name.data, name.size) ;			\	      TAINT;                                       		\	      SvTAINTED_on(arg);                                       	\	      SvUTF8_off(arg);                                       	\	      DBM_ckFilter(arg, filter_fetch_value,"filter_fetch_value") ; 	\	  }								\	}#define OutputKey(arg, name)	 					\	{ if (RETVAL == 0) 						\	  { 								\		SvGETMAGIC(arg) ;          				\		if (db->type != DB_RECNO) {				\		    my_sv_setpvn(arg, (const char *)name.data, name.size); 		\		}							\		else 							\		    sv_setiv(arg, (I32)*(I32*)name.data - 1); 		\	      TAINT;                                       		\	      SvTAINTED_on(arg);                                       	\	      SvUTF8_off(arg);                                       	\	      DBM_ckFilter(arg, filter_fetch_key,"filter_fetch_key") ; 	\	  } 								\	}#define my_SvUV32(sv) ((u_int32_t)SvUV(sv))#ifdef CAN_PROTOTYPEextern void __getBerkeleyDBInfo(void);#endif/* Internal Global Data */#define MY_CXT_KEY "DB_File::_guts" XS_VERSIONtypedef struct {    recno_t	x_Value;     recno_t	x_zero;    DB_File	x_CurrentDB;    DBTKEY	x_empty;} my_cxt_t;START_MY_CXT#define Value		(MY_CXT.x_Value)#define zero		(MY_CXT.x_zero)#define CurrentDB	(MY_CXT.x_CurrentDB)#define empty		(MY_CXT.x_empty)#define ERR_BUFF "DB_File::Error"#ifdef DB_VERSION_MAJORstatic int#ifdef CAN_PROTOTYPEdb_put(DB_File db, DBTKEY key, DBT value, u_int flags)#elsedb_put(db, key, value, flags)DB_File		db ;DBTKEY		key ;DBT		value ;u_int		flags ;#endif{    int status ;    if (flagSet(flags, R_IAFTER) || flagSet(flags, R_IBEFORE)) {        DBC * temp_cursor ;	DBT l_key, l_value;        #if DB_VERSION_MAJOR == 2 && DB_VERSION_MINOR < 6        if (((db->dbp)->cursor)(db->dbp, NULL, &temp_cursor) != 0)#else        if (((db->dbp)->cursor)(db->dbp, NULL, &temp_cursor, 0) != 0)#endif	    return (-1) ;	memset(&l_key, 0, sizeof(l_key));	l_key.data = key.data;	l_key.size = key.size;	memset(&l_value, 0, sizeof(l_value));	l_value.data = value.data;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品福利一区二区三区| 色综合久久天天| 欧美成人一区二区三区| 天天影视色香欲综合网老头| 欧美三日本三级三级在线播放| 亚洲图片欧美色图| 欧美一级专区免费大片| 久久99精品国产麻豆婷婷洗澡| 久久久久久久久久久久电影| 99久久精品久久久久久清纯| 亚洲成人免费电影| 精品va天堂亚洲国产| 成人免费视频app| 樱桃视频在线观看一区| 欧美日本乱大交xxxxx| 日韩国产精品久久久久久亚洲| 欧美成人r级一区二区三区| 国产成人av一区二区三区在线| 国产精品私房写真福利视频| 日本道精品一区二区三区| 全国精品久久少妇| 国产精品网站在线| 欧美日韩国产高清一区| 国产精品一二三四五| ...xxx性欧美| 日韩欧美一区二区久久婷婷| 成人小视频免费观看| 亚洲va国产va欧美va观看| 久久天堂av综合合色蜜桃网| 99热精品一区二区| 日本美女一区二区| 亚洲色图制服诱惑 | 精品在线免费视频| 国产精品久久夜| 欧美一区二区视频在线观看| av激情综合网| 精品亚洲porn| 亚洲国产aⅴ成人精品无吗| 欧美激情资源网| 欧美久久久久免费| av日韩在线网站| 精品无人码麻豆乱码1区2区 | 成人午夜激情片| 日韩精品一二三四| 亚洲欧洲日产国码二区| 欧美一级黄色片| 欧美最新大片在线看| 懂色av一区二区三区免费观看| 天天av天天翘天天综合网| 中文字幕一区二区不卡| 久久久亚洲欧洲日产国码αv| 欧美日韩在线播放一区| 欧美日韩免费一区二区三区视频| 国产精品伊人色| 久久99精品视频| 日韩电影在线免费看| 亚洲激情图片小说视频| 国产精品久久久久久久久久免费看| 欧美一卡二卡三卡四卡| 欧美日韩在线观看一区二区| 在线观看日韩精品| 99精品欧美一区二区三区综合在线| 国产剧情一区二区| 国产一区二区三区久久久| 麻豆成人av在线| 狂野欧美性猛交blacked| 五月婷婷激情综合| 亚洲最大成人网4388xx| 亚洲精品乱码久久久久| 一区二区三区在线观看视频| 日韩伦理av电影| 亚洲人成精品久久久久久| 18成人在线观看| 亚洲天堂网中文字| 亚洲老司机在线| 亚洲国产精品一区二区www | 国产成都精品91一区二区三| 国产一区二区三区久久久| 久久99久国产精品黄毛片色诱| 美女一区二区视频| 激情综合色综合久久| 久久精品国产99国产| 久久99国产精品久久99果冻传媒| 蜜臀久久99精品久久久画质超高清| 丝袜亚洲另类丝袜在线| 另类综合日韩欧美亚洲| 激情六月婷婷久久| 国产成人精品影视| 成人avav影音| 色婷婷av一区二区三区软件 | 91精品国产免费| 日韩一区二区在线免费观看| 日韩午夜在线影院| 久久久久久久久久电影| 国产精品欧美久久久久一区二区| 国产精品国产三级国产三级人妇 | 国产精品久久99| 亚洲人成网站色在线观看| 一区二区在线电影| 香蕉久久一区二区不卡无毒影院| 日韩高清一级片| 国产精品一区二区久激情瑜伽 | 欧美一区二区日韩一区二区| 日韩三级高清在线| 久久久高清一区二区三区| 自拍偷拍欧美精品| 日韩精品电影在线观看| 国产一区二区不卡| 91香蕉视频mp4| 3atv一区二区三区| 国产女人aaa级久久久级| 亚洲欧美色综合| 日本美女一区二区三区视频| 国产麻豆91精品| 欧美综合在线视频| 久久综合色播五月| 亚洲精品网站在线观看| 久久黄色级2电影| 色综合色综合色综合色综合色综合| 欧美日韩视频专区在线播放| 久久久久久夜精品精品免费| 亚洲午夜一区二区三区| 国产福利一区在线| 欧美精品v国产精品v日韩精品 | 日本一区二区免费在线观看视频| 一区二区三区精品视频| 久久精品国产77777蜜臀| 91视频免费播放| 欧美v日韩v国产v| 亚洲精品免费视频| 国产成人在线观看| 91麻豆精品国产无毒不卡在线观看| 中文字幕欧美国产| 麻豆精品一区二区| 欧美视频精品在线| 欧美国产精品专区| 久久精品99国产精品| 欧美喷潮久久久xxxxx| 中文字幕不卡在线观看| 久久国产婷婷国产香蕉| 色视频成人在线观看免| 亚洲国产精品高清| 韩国av一区二区三区| 欧美精品乱码久久久久久按摩 | 制服丝袜激情欧洲亚洲| 中文字幕在线不卡一区| 国产在线精品视频| 日韩三级免费观看| 日本成人在线看| 在线成人高清不卡| 亚洲欧美在线另类| 高清国产一区二区| 国产日韩欧美麻豆| 国产精品99久久久久久似苏梦涵| 欧美一级片在线观看| 婷婷综合另类小说色区| 日本乱码高清不卡字幕| 亚洲欧洲美洲综合色网| 成人av在线网| 国产精品美女久久久久久久久久久 | 一区二区三区在线看| av在线不卡网| 国产精品日日摸夜夜摸av| 懂色av一区二区夜夜嗨| 国产欧美一区在线| 成人性生交大合| 国产精品成人免费在线| 成人国产精品视频| 亚洲欧洲日韩在线| 色婷婷久久久久swag精品| 一区二区三区美女视频| 色中色一区二区| 亚洲国产精品久久久男人的天堂| 色94色欧美sute亚洲13| 日一区二区三区| 91精品国产91久久综合桃花| 裸体在线国模精品偷拍| 精品国偷自产国产一区| 国产成人在线看| 亚洲日本在线天堂| 欧美日韩国产色站一区二区三区| 日韩国产欧美在线观看| 欧美sm极限捆绑bd| 国产高清不卡一区二区| 亚洲少妇30p| 欧美日韩国产乱码电影| 久久99国产精品免费网站| 久久久精品黄色| 成人激情开心网| 午夜电影一区二区三区| 精品国产乱码久久久久久夜甘婷婷| 国产乱色国产精品免费视频| 亚洲天堂av一区| 91精品国产色综合久久| 国产精品一级片在线观看| 一区二区三区在线视频观看| 91精品国产乱码久久蜜臀| 成人av在线电影| 日韩国产欧美视频| 国产精品国产三级国产普通话99|