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

📄 tdb.h

📁 经典的ppp程序
💻 H
字号:
#define STANDALONE	1/*  * Database functions * Copyright (C) Andrew Tridgell 1999 *  * Redistribution and use in source and binary forms are permitted * provided that the above copyright notice and this paragraph are * duplicated in all such forms AND provided that this software or * any derived work is only used as part of the PPP daemon (pppd) * and related utilities. * The name of the author may not be used to endorse or promote products * derived from this software without specific prior written permission. * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. * * Note: this software is also available under the Gnu Public License * version 2 or later. */typedef unsigned tdb_len;typedef unsigned tdb_off;#define TDB_MAGIC_FOOD "TDB file\n"/* this is stored at the front of every database */struct tdb_header {	char magic_food[32]; /* for /etc/magic */	unsigned version; /* version of the code */	unsigned hash_size; /* number of hash entries */};typedef struct {	char *dptr;	size_t dsize;} TDB_DATA;/* this is the context structure that is returned from a db open */typedef struct {	char *name; /* the name of the database */	void *map_ptr; /* where it is currently mapped */	int fd; /* open file descriptor for the database */	tdb_len map_size; /* how much space has been mapped */	int read_only; /* opened read-only */	int *locked; /* set if we have a chain locked */	int ecode; /* error code for last tdb error */	struct tdb_header header; /* a cached copy of the header */} TDB_CONTEXT;/* flags to tdb_store() */#define TDB_REPLACE 1#define TDB_INSERT 2/* flags for tdb_open() */#define TDB_CLEAR_IF_FIRST 1/* error codes */enum TDB_ERROR {TDB_SUCCESS=0, TDB_ERR_CORRUPT, TDB_ERR_IO, TDB_ERR_LOCK, 		TDB_ERR_OOM, TDB_ERR_EXISTS};#if STANDALONETDB_CONTEXT *tdb_open(char *name, int hash_size, int tdb_flags,		      int open_flags, mode_t mode);char *tdb_error(TDB_CONTEXT *tdb);int tdb_writelock(TDB_CONTEXT *tdb);int tdb_writeunlock(TDB_CONTEXT *tdb);TDB_DATA tdb_fetch(TDB_CONTEXT *tdb, TDB_DATA key);int tdb_delete(TDB_CONTEXT *tdb, TDB_DATA key);int tdb_store(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, int flag);int tdb_close(TDB_CONTEXT *tdb);TDB_DATA tdb_firstkey(TDB_CONTEXT *tdb);TDB_DATA tdb_nextkey(TDB_CONTEXT *tdb, TDB_DATA key);int tdb_traverse(TDB_CONTEXT *tdb, 	int (*fn)(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, void *state),	void *state);int tdb_exists(TDB_CONTEXT *tdb, TDB_DATA key);#endif

⌨️ 快捷键说明

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