亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
日韩欧美在线综合网| av电影天堂一区二区在线观看| 在线观看国产日韩| 亚洲综合色自拍一区| 欧美日本高清视频在线观看| 亚洲v日本v欧美v久久精品| 欧美精品国产精品| 免费成人在线视频观看| 久久伊人蜜桃av一区二区| 国产成人亚洲综合a∨婷婷 | 久久黄色级2电影| 久久蜜桃av一区精品变态类天堂 | 国产一区二区三区免费播放| 欧美激情一区三区| 一本一本大道香蕉久在线精品| 日韩伦理av电影| 欧美剧情片在线观看| 麻豆91在线播放免费| 中文字幕av一区二区三区| 日本高清成人免费播放| 日韩av电影一区| 国产欧美精品一区二区色综合| 91网站最新地址| 视频一区欧美日韩| 中文字幕第一页久久| 欧美日韩国产精选| 国产一区亚洲一区| 亚洲一区二区欧美激情| 奇米影视7777精品一区二区| 日韩欧美高清在线| 国产真实精品久久二三区| 中文字幕国产精品一区二区| 欧美性大战久久久久久久| 麻豆精品视频在线观看| 国产精品丝袜一区| 91精品国产福利| 成人深夜福利app| 五月综合激情日本mⅴ| 久久久久国产精品麻豆ai换脸 | 欧美美女一区二区在线观看| 国产在线国偷精品免费看| 亚洲视频一区二区免费在线观看| 欧美精品在线观看播放| 成人app下载| 久久超碰97中文字幕| 夜色激情一区二区| 国产女主播视频一区二区| 欧美高清精品3d| 99久久婷婷国产综合精品电影| 免费国产亚洲视频| 亚洲国产另类av| 国产人成一区二区三区影院| 欧美一区二区三区影视| 91免费在线视频观看| 国内精品伊人久久久久影院对白| 亚洲图片自拍偷拍| 亚洲免费观看视频| 亚洲国产精品高清| 久久综合九色综合欧美亚洲| 欧美日本精品一区二区三区| 91免费精品国自产拍在线不卡| 国产福利一区二区三区| 久久99热这里只有精品| 日本成人中文字幕| 婷婷激情综合网| 亚洲丰满少妇videoshd| 亚洲蜜桃精久久久久久久| 国产精品入口麻豆原神| 久久综合五月天婷婷伊人| 欧美一区二区三区在| 欧美日韩在线播| 在线这里只有精品| 91成人在线免费观看| 色丁香久综合在线久综合在线观看| 成人网在线播放| 国内外成人在线视频| 国产在线视频一区二区| 国内精品国产三级国产a久久| 美腿丝袜亚洲综合| 老色鬼精品视频在线观看播放| 五月婷婷久久丁香| 天使萌一区二区三区免费观看| 一区二区三区日本| 一区二区在线观看视频| 一区二区免费看| 一区二区三区在线不卡| 亚洲精品日日夜夜| 一区二区高清在线| 午夜精品视频在线观看| 视频一区在线播放| 久草热8精品视频在线观看| 国产一区二区在线观看视频| 国产老女人精品毛片久久| 国产成人av影院| 99久久精品99国产精品 | 亚洲图片欧美综合| 天天影视涩香欲综合网| 蜜桃一区二区三区四区| 黄色精品一二区| 成人免费黄色在线| 欧美又粗又大又爽| 日韩一区二区三区高清免费看看| 精品美女在线观看| 国产精品福利电影一区二区三区四区 | 日韩精品最新网址| 国产亚洲精品bt天堂精选| 日韩理论片一区二区| 午夜精品一区二区三区电影天堂 | 亚洲视频一区二区在线观看| 亚洲精品乱码久久久久久日本蜜臀| 亚洲第一久久影院| 国精品**一区二区三区在线蜜桃| 国产99久久久国产精品潘金| 91久久精品日日躁夜夜躁欧美| 欧美一级理论片| 国产精品天美传媒沈樵| 香蕉加勒比综合久久| 国产精品亚洲专一区二区三区| 一本色道久久综合狠狠躁的推荐| 欧美一级艳片视频免费观看| 国产精品久久午夜| 强制捆绑调教一区二区| 国产成人a级片| 欧美日本一区二区| 国产精品另类一区| 日韩精品一级中文字幕精品视频免费观看 | 欧美va亚洲va| 亚洲欧美自拍偷拍| 蜜桃一区二区三区在线| 99久久99久久综合| 欧美大片在线观看| 一区二区三区视频在线看| 国产乱国产乱300精品| 91精品国产91久久久久久最新毛片| 欧美韩国日本不卡| 美腿丝袜亚洲三区| 在线观看一区日韩| 国产精品嫩草影院com| 青娱乐精品视频| 欧美性猛交xxxxxxxx| 一色屋精品亚洲香蕉网站| 偷窥少妇高潮呻吟av久久免费| 成人aaaa免费全部观看| 久久久精品tv| 男女男精品网站| 欧美日韩综合色| 一区二区在线观看免费| 成人在线综合网| 久久久久久毛片| 看片的网站亚洲| 欧美精品日韩一区| 一卡二卡三卡日韩欧美| 99这里都是精品| 26uuu精品一区二区三区四区在线 26uuu精品一区二区在线观看 | av在线一区二区| 久久久久久久久久久久久女国产乱| 亚洲国产色一区| 99久久精品免费| 国产精品高清亚洲| 成人av资源下载| 欧美极品少妇xxxxⅹ高跟鞋| 国产一区二区美女诱惑| 日韩免费在线观看| 日本亚洲最大的色成网站www| 欧美亚洲一区三区| 一区二区三区精品在线观看| 91捆绑美女网站| 亚洲天堂a在线| 91碰在线视频| 亚洲精品一二三区| 91电影在线观看| 午夜精品成人在线视频| 欧美一区二区三区四区视频 | 精品少妇一区二区| 毛片基地黄久久久久久天堂| 精品福利一区二区三区免费视频| 美腿丝袜亚洲综合| 亚洲精品一区二区三区精华液 | 国产精品初高中害羞小美女文| 成人动漫av在线| 日韩码欧中文字| 欧美日韩三级在线| 美女看a上一区| 久久夜色精品国产欧美乱极品| 国产精品一区专区| 最新日韩在线视频| 日本高清无吗v一区| 爽好多水快深点欧美视频| 欧美一区二区三区精品| 韩国理伦片一区二区三区在线播放| 久久精品亚洲精品国产欧美| 成人激情开心网| 亚洲综合在线免费观看| 欧美精品成人一区二区三区四区| 美女性感视频久久| 欧美国产精品劲爆| 色狠狠一区二区| 久久99热这里只有精品| 中文字幕亚洲一区二区va在线| 在线免费观看成人短视频|