您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ tdb_traverse函数代码示例

51自学网 2021-06-03 08:43:11
  C++
这篇教程C++ tdb_traverse函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中tdb_traverse函数的典型用法代码示例。如果您正苦于以下问题:C++ tdb_traverse函数的具体用法?C++ tdb_traverse怎么用?C++ tdb_traverse使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了tdb_traverse函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: run_child

static int run_child(int i, int seed, unsigned num_loops, unsigned start,		     int tdb_flags){	struct sigaction act = { .sa_sigaction = segv_handler,				 .sa_flags = SA_SIGINFO };	sigaction(11, &act, NULL);		db = tdb_open("torture.tdb", tdb_flags, O_RDWR | O_CREAT, 0600,		      &log_attr);	if (!db) {		fatal(NULL, "db open failed");	}#if 0	if (i == 0) {		printf("pid %i/n", getpid());		sleep(9);	} else		sleep(10);#endif	srand(seed + i);	srandom(seed + i);	/* Set global, then we're ready to handle being killed. */	loopnum = start;	signal(SIGUSR1, send_count_and_suicide);	for (;loopnum<num_loops && error_count == 0;loopnum++) {		addrec_db();	}	if (error_count == 0) {		tdb_traverse(db, NULL, NULL);#if TRANSACTION_PROB		if (always_transaction) {			while (in_transaction) {				tdb_transaction_cancel(db);				in_transaction--;			}			if (tdb_transaction_start(db) != 0)				fatal(db, "tdb_transaction_start failed");		}#endif		tdb_traverse(db, traverse_fn, NULL);		tdb_traverse(db, traverse_fn, NULL);#if TRANSACTION_PROB		if (always_transaction) {			if (tdb_transaction_commit(db) != 0)				fatal(db, "tdb_transaction_commit failed");		}#endif	}	tdb_close(db);	return (error_count < 100 ? error_count : 100);}
开发者ID:burito,项目名称:ccan,代码行数:59,


示例2: main

int main(int argc, char *argv[]){	struct tdb_context *tdb;	TDB_DATA key, data;	union tdb_attribute hsize;	hsize.base.attr = TDB_ATTRIBUTE_TDB1_HASHSIZE;	hsize.base.next = &tap_log_attr;	hsize.tdb1_hashsize.hsize = 1024;	plan_tests(13);	agent = prepare_external_agent1();	if (!agent)		err(1, "preparing agent");	tdb = tdb_open("run-traverse-in-transaction.tdb1",		       TDB_VERSION1, O_CREAT|O_TRUNC|O_RDWR,		       0600, &hsize);	ok1(tdb);	key.dsize = strlen("hi");	key.dptr = (void *)"hi";	data.dptr = (void *)"world";	data.dsize = strlen("world");	ok1(tdb_store(tdb, key, data, TDB_INSERT) == TDB_SUCCESS);	ok1(external_agent_operation1(agent, OPEN, tdb->name) == SUCCESS);	ok1(tdb_transaction_start(tdb) == TDB_SUCCESS);	ok1(external_agent_operation1(agent, TRANSACTION_START, tdb->name)	    == WOULD_HAVE_BLOCKED);	tdb_traverse(tdb, traverse, NULL);	/* That should *not* release the transaction lock! */	ok1(external_agent_operation1(agent, TRANSACTION_START, tdb->name)	    == WOULD_HAVE_BLOCKED);	tdb_traverse(tdb, traverse, NULL);	/* That should *not* release the transaction lock! */	ok1(external_agent_operation1(agent, TRANSACTION_START, tdb->name)	    == WOULD_HAVE_BLOCKED);	ok1(tdb_transaction_commit(tdb) == TDB_SUCCESS);	/* Now we should be fine. */	ok1(external_agent_operation1(agent, TRANSACTION_START, tdb->name)	    == SUCCESS);	tdb_close(tdb);	return exit_status();}
开发者ID:atlant2011,项目名称:samba,代码行数:51,


示例3: main

 int main(int argc, const char *argv[]){	int i, seed=0;	int loops = 10000;	int num_entries;	char test_gdbm[] = "test.gdbm";	unlink("test.gdbm");	db = tdb_open("test.tdb", 0, TDB_CLEAR_IF_FIRST, 		      O_RDWR | O_CREAT | O_TRUNC, 0600);	gdbm = gdbm_open(test_gdbm, 512, GDBM_WRITER|GDBM_NEWDB|GDBM_FAST, 			 0600, NULL);	if (!db || !gdbm) {		fatal("db open failed");	}#if 1	srand(seed);	_start_timer();	for (i=0;i<loops;i++) addrec_gdbm();	printf("gdbm got %.2f ops/sec/n", i/_end_timer());#endif	merge_test();	srand(seed);	_start_timer();	for (i=0;i<loops;i++) addrec_db();	printf("tdb got %.2f ops/sec/n", i/_end_timer());	if (tdb_validate_freelist(db, &num_entries) == -1) {		printf("tdb freelist is corrupt/n");	} else {		printf("tdb freelist is good (%d entries)/n", num_entries);	}	compare_db();	printf("traversed %d records/n", tdb_traverse(db, traverse_fn, NULL));	printf("traversed %d records/n", tdb_traverse(db, traverse_fn, NULL));	tdb_close(db);	gdbm_close(gdbm);	return 0;}
开发者ID:0x24bin,项目名称:winexe-1,代码行数:48,


示例4: main

int main(int argc, char *argv[]){	unsigned int i;	bool found[NUM_TESTS];	struct tdb_context *tdb;	int flags[] = { TDB_DEFAULT, TDB_NOMMAP,			TDB_CONVERT, TDB_NOMMAP|TDB_CONVERT,			TDB_VERSION1, TDB_VERSION1|TDB_NOMMAP,			TDB_VERSION1|TDB_CONVERT,			TDB_VERSION1|TDB_NOMMAP|TDB_CONVERT	};	plan_tests(sizeof(flags) / sizeof(flags[0]) * 6 + 1);	for (i = 0; i < sizeof(flags) / sizeof(flags[0]); i++) {		tdb = tdb_open("run-93-repack.tdb", flags[i],			       O_RDWR|O_CREAT|O_TRUNC, 0600, &tap_log_attr);		ok1(tdb);		if (!tdb)			break;		ok1(store_all(tdb));		ok1(tdb_repack(tdb) == TDB_SUCCESS);		memset(found, 0, sizeof(found));		ok1(tdb_check(tdb, NULL, NULL) == TDB_SUCCESS);		ok1(tdb_traverse(tdb, mark_entry, found) == NUM_TESTS);		ok1(is_all_set(found, NUM_TESTS));		tdb_close(tdb);	}	ok1(tap_log_messages == 0);	return exit_status();}
开发者ID:sprymak,项目名称:samba,代码行数:34,


示例5: share_info_db_init

BOOL share_info_db_init(void){	const char *vstring = "INFO/version";	int32 vers_id; 	if (share_tdb) {		return True;	}	share_tdb = tdb_open_log(lock_path("share_info.tdb"), 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);	if (!share_tdb) {		DEBUG(0,("Failed to open share info database %s (%s)/n",			lock_path("share_info.tdb"), strerror(errno) ));		return False;	} 	/* handle a Samba upgrade */	tdb_lock_bystring(share_tdb, vstring);	/* Cope with byte-reversed older versions of the db. */	vers_id = tdb_fetch_int32(share_tdb, vstring);	if ((vers_id == SHARE_DATABASE_VERSION_V1) || (IREV(vers_id) == SHARE_DATABASE_VERSION_V1)) {		/* Written on a bigendian machine with old fetch_int code. Save as le. */		tdb_store_int32(share_tdb, vstring, SHARE_DATABASE_VERSION_V2);		vers_id = SHARE_DATABASE_VERSION_V2;	}	if (vers_id != SHARE_DATABASE_VERSION_V2) {		tdb_traverse(share_tdb, tdb_traverse_delete_fn, NULL);		tdb_store_int32(share_tdb, vstring, SHARE_DATABASE_VERSION_V2);	}	tdb_unlock_bystring(share_tdb, vstring);	return True;}
开发者ID:AllardJ,项目名称:Tomato,代码行数:35,


示例6: net_idmap_fixup_hwm

static NTSTATUS net_idmap_fixup_hwm(void){	NTSTATUS result = NT_STATUS_UNSUCCESSFUL;	TDB_CONTEXT *idmap_tdb;	char *tdbfile = NULL;	struct hwms hwms;	struct hwms highest;	if (!lp_idmap_uid(&hwms.user_hwm, &highest.user_hwm) ||	    !lp_idmap_gid(&hwms.group_hwm, &highest.group_hwm)) {		d_fprintf(stderr, "idmap range missing/n");		return NT_STATUS_UNSUCCESSFUL;	}	tdbfile = SMB_STRDUP(lock_path("winbindd_idmap.tdb"));	if (!tdbfile) {		DEBUG(0, ("idmap_init: out of memory!/n"));		return NT_STATUS_NO_MEMORY;	}	idmap_tdb = tdb_open_log(tdbfile, 0, TDB_DEFAULT, O_RDWR, 0);	if (idmap_tdb == NULL) {		d_fprintf(stderr, "Could not open idmap: %s/n", tdbfile);		return NT_STATUS_NO_SUCH_FILE;	}	hwms.ok = True;	tdb_traverse(idmap_tdb, net_idmap_find_max_id, &hwms);	if (!hwms.ok) {		goto done;	}	d_printf("USER HWM: %d  GROUP HWM: %d/n",		 hwms.user_hwm, hwms.group_hwm);	if (hwms.user_hwm >= highest.user_hwm) {		d_fprintf(stderr, "Highest UID out of uid range/n");		goto done;	}	if (hwms.group_hwm >= highest.group_hwm) {		d_fprintf(stderr, "Highest GID out of gid range/n");		goto done;	}	if ((tdb_store_int32(idmap_tdb, "USER HWM", (int32)hwms.user_hwm) != 0) ||	    (tdb_store_int32(idmap_tdb, "GROUP HWM", (int32)hwms.group_hwm) != 0)) {		d_fprintf(stderr, "Could not store HWMs/n");		goto done;	}	result = NT_STATUS_OK; done:	tdb_close(idmap_tdb);	return result;}
开发者ID:DeezNuts12,项目名称:freestyledash,代码行数:60,


示例7: PyErr_SetString

PyObject *py_tdb_hnd_traverse(PyObject *self, PyObject *args, PyObject *kw){	tdb_hnd_object *obj = (tdb_hnd_object *)self;	static char *kwlist[] = { "traverse_fn", "state", NULL };	PyObject *state = Py_None, *callback;	struct traverse_info info;	int result;	if (!PyArg_ParseTupleAndKeywords(		    args, kw, "O|O", kwlist, &callback, &state))		return NULL;	if (!PyCallable_Check(callback)) {		PyErr_SetString(PyExc_TypeError, "parameter must be callable");		return NULL;        }	Py_INCREF(callback);	Py_INCREF(state);	info.callback = callback;	info.state = state;	result = tdb_traverse(obj->tdb, tdb_traverse_traverse, &info);	Py_DECREF(callback);	Py_DECREF(state);	return PyInt_FromLong(result);}
开发者ID:AllardJ,项目名称:Tomato,代码行数:30,


示例8: net_idmap_dump

/*********************************************************** Dump the current idmap **********************************************************/static int net_idmap_dump(struct net_context *c, int argc, const char **argv){	TDB_CONTEXT *idmap_tdb;	if ( argc != 1  || c->display_usage) {		d_printf(_("Usage:/n"			   "net idmap dump <inputfile>/n"			   "  Dump current ID mapping./n"			   "    inputfile/tTDB file to read mappings from./n"));		return c->display_usage?0:-1;	}	idmap_tdb = tdb_open_log(argv[0], 0, TDB_DEFAULT, O_RDONLY, 0);	if (idmap_tdb == NULL) {		d_fprintf(stderr, _("Could not open idmap: %s/n"), argv[0]);		return -1;	}	tdb_traverse(idmap_tdb, net_idmap_dump_one_entry, NULL);	tdb_close(idmap_tdb);	return 0;}
开发者ID:0x24bin,项目名称:winexe-1,代码行数:28,


示例9: dump_tdb

static int dump_tdb(const char *fname, const char *keyname, bool emergency){	TDB_CONTEXT *tdb;	TDB_DATA key, value;	struct tdb_logging_context logfn = { log_stderr };	tdb = tdb_open_ex(fname, 0, 0, O_RDONLY, 0, &logfn, NULL);	if (!tdb) {		printf("Failed to open %s/n", fname);		return 1;	}	if (emergency) {		return tdb_rescue(tdb, emergency_walk, keyname) == 0;	}	if (!keyname) {		return tdb_traverse(tdb, traverse_fn, NULL) == -1 ? 1 : 0;	} else {		key.dptr = discard_const_p(uint8_t, keyname);		key.dsize = strlen(keyname);		value = tdb_fetch(tdb, key);		if (!value.dptr) {			return 1;		} else {			print_data(value);			free(value.dptr);		}	}	return 0;}
开发者ID:AIdrifter,项目名称:samba,代码行数:31,


示例10: db_hash_traverse_update

int db_hash_traverse_update(struct db_hash_context *dh,			    db_hash_record_parser_fn parser,			    void *private_data, int *count){	struct db_hash_traverse_state state;	int ret;	if (dh == NULL || parser == NULL) {		return EINVAL;	}	state.parser = parser;	state.private_data = private_data;	ret = tdb_traverse(dh->db, db_hash_traverse_parser, &state);	if (ret == -1) {		ret = db_hash_map_tdb_error(dh);	} else {		if (count != NULL) {			*count = ret;		}		ret = 0;	}	return ret;}
开发者ID:Alexander--,项目名称:samba,代码行数:26,


示例11: tdb_hnd_length

static int tdb_hnd_length(tdb_hnd_object *obj){	int result;	result = tdb_traverse(obj->tdb, tdb_traverse_count, NULL);	return result;}
开发者ID:AllardJ,项目名称:Tomato,代码行数:8,


示例12: info_tdb

static void info_tdb(void){  int count;  total_bytes = 0;  if ((count = tdb_traverse(tdb, traverse_fn, NULL) == -1))    printf("Error = %s/n", tdb_errorstr(tdb));  else    printf("%d records totalling %d bytes/n", count, total_bytes);}
开发者ID:simula67,项目名称:Thunar-1.3.0,代码行数:9,


示例13: dump_tdb

int dump_tdb(DATABASE *db, tdb_traverse_func fn){	if (!db || !db->tdb) {		return ERR_DB_INVALID;	}        tdb_traverse(db->tdb, fn, NULL);		return ERR_OK;}
开发者ID:songbin,项目名称:memPE,代码行数:10,


示例14: session_traverse

static BOOL session_traverse(int (*fn)(TDB_CONTEXT *, TDB_DATA, TDB_DATA, void *), void *state){	if (!tdb) {		DEBUG(3, ("No tdb opened/n"));		return False;	}	tdb_traverse(tdb, fn, state);	return True;}
开发者ID:cmtsij,项目名称:Vizio_XWR100_GPL,代码行数:10,


示例15: sss_ncache_reset_permament

int sss_ncache_reset_permament(struct sss_nc_ctx *ctx){    int ret;    ret = tdb_traverse(ctx->tdb, delete_permanent, NULL);    if (ret < 0)        return EIO;    return EOK;}
开发者ID:AbhishekKumarSingh,项目名称:sssd,代码行数:10,


示例16: tdb_repack

enum TDB_ERROR tdb_repack(struct tdb_context *tdb){	struct tdb_context *tmp_db;	struct traverse_state state;	state.error = tdb_transaction_start(tdb);	if (state.error != TDB_SUCCESS) {		return state.error;	}	tmp_db = tdb_open("tmpdb", TDB_INTERNAL, O_RDWR|O_CREAT, 0, NULL);	if (tmp_db == NULL) {		state.error = tdb_logerr(tdb, TDB_ERR_OOM, TDB_LOG_ERROR,					 __location__					 " Failed to create tmp_db");		tdb_transaction_cancel(tdb);		return tdb->last_error = state.error;	}	state.dest_db = tmp_db;	if (tdb_traverse(tdb, repack_traverse, &state) < 0) {		goto fail;	}	state.error = tdb_wipe_all(tdb);	if (state.error != TDB_SUCCESS) {		goto fail;	}	state.dest_db = tdb;	if (tdb_traverse(tmp_db, repack_traverse, &state) < 0) {		goto fail;	}	tdb_close(tmp_db);	return tdb_transaction_commit(tdb);fail:	tdb_transaction_cancel(tdb);	tdb_close(tmp_db);	return state.error;}
开发者ID:atlant2011,项目名称:samba,代码行数:42,


示例17: clear_unexpected

/****************************************************************************delete all old unexpected packets  **************************************************************************/void clear_unexpected(time_t t){	if (!tdbd) return;	if ((lastt != 0) && (t < lastt + NMBD_UNEXPECTED_TIMEOUT))		return;	lastt = t;	tdb_traverse(tdbd, traverse_fn, NULL);}
开发者ID:livebox,项目名称:livebox2,代码行数:14,


示例18: run_child

static int run_child(const char *filename, int i, int seed, unsigned num_loops, unsigned start){	db = tdb_open_ex(filename, hash_size, TDB_DEFAULT,			 O_RDWR | O_CREAT, 0600, &log_ctx, NULL);	if (!db) {		fatal("db open failed");	}	srand(seed + i);	srandom(seed + i);	/* Set global, then we're ready to handle being killed. */	loopnum = start;	signal(SIGUSR1, send_count_and_suicide);	for (;loopnum<num_loops && error_count == 0;loopnum++) {		addrec_db();	}	if (error_count == 0) {		tdb_traverse_read(db, NULL, NULL);		if (always_transaction) {			while (in_transaction) {				tdb_transaction_cancel(db);				in_transaction--;			}			if (tdb_transaction_start(db) != 0)				fatal("tdb_transaction_start failed");		}		tdb_traverse(db, traverse_fn, NULL);		tdb_traverse(db, traverse_fn, NULL);		if (always_transaction) {			if (tdb_transaction_commit(db) != 0)				fatal("tdb_transaction_commit failed");		}	}	tdb_close(db);	return (error_count < 100 ? error_count : 100);}
开发者ID:andrew-aladev,项目名称:samba-talloc-debug,代码行数:41,


示例19: tdb_validate_child

/* * internal validation function, executed by the child. */static int tdb_validate_child(struct tdb_context *tdb,			      tdb_validate_data_func validate_fn){	int ret = 1;	int num_entries = 0;	struct tdb_validation_status v_status;	v_status.tdb_error = False;	v_status.bad_freelist = False;	v_status.bad_entry = False;	v_status.unknown_key = False;	v_status.success = True;	if (!tdb) {		v_status.tdb_error = True;		v_status.success = False;		goto out;	}	/* Check if the tdb's freelist is good. */	if (tdb_validate_freelist(tdb, &num_entries) == -1) {		v_status.bad_freelist = True;		v_status.success = False;		goto out;	}	DEBUG(10,("tdb_validate_child: tdb %s freelist has %d entries/n",		  tdb_name(tdb), num_entries));	/* Now traverse the tdb to validate it. */	num_entries = tdb_traverse(tdb, validate_fn, (void *)&v_status);	if (!v_status.success) {		goto out;	} else if (num_entries == -1) {		v_status.tdb_error = True;		v_status.success = False;		goto out;	}	DEBUG(10,("tdb_validate_child: tdb %s is good with %d entries/n",		  tdb_name(tdb), num_entries));	ret = 0; /* Cache is good. */out:	DEBUG(10,   ("tdb_validate_child: summary of validation status:/n"));	DEBUGADD(10,(" * tdb error: %s/n", v_status.tdb_error ? "yes" : "no"));	DEBUGADD(10,(" * bad freelist: %s/n",v_status.bad_freelist?"yes":"no"));	DEBUGADD(10,(" * bad entry: %s/n", v_status.bad_entry ? "yes" : "no"));	DEBUGADD(10,(" * unknown key: %s/n", v_status.unknown_key?"yes":"no"));	DEBUGADD(10,(" => overall success: %s/n", v_status.success?"yes":"no"));	return ret;}
开发者ID:gojdic,项目名称:samba,代码行数:56,


示例20: dump_tdb

static int dump_tdb(const char *fname){	TDB_CONTEXT *tdb;		tdb = tdb_open(fname, 0, 0, O_RDONLY, 0);	if (!tdb) {		printf("Failed to open %s/n", fname);		return 1;	}	tdb_traverse(tdb, traverse_fn, NULL);	return 0;}
开发者ID:wbniv,项目名称:foswiki,代码行数:13,


示例21: tdbsam_setsampwent

static NTSTATUS tdbsam_setsampwent(struct pdb_methods *my_methods, BOOL update){	uint32 flags = update ? (O_RDWR|O_CREAT) : O_RDONLY;		struct tdbsam_privates *tdb_state = (struct tdbsam_privates *)my_methods->private_data;		if ( !(tdb_state->passwd_tdb = tdbsam_tdbopen(tdb_state->tdbsam_location, flags )) ) 		return NT_STATUS_UNSUCCESSFUL;	tdb_traverse( tdb_state->passwd_tdb, tdbsam_traverse_setpwent, NULL );		return NT_STATUS_OK;}
开发者ID:Nymphetaminer,项目名称:dsl-n55u,代码行数:13,


示例22: db_tdb_traverse

static int db_tdb_traverse(struct db_context *db,			   int (*f)(struct db_record *rec, void *private_data),			   void *private_data){	struct db_tdb_ctx *db_ctx =		talloc_get_type_abort(db->private_data, struct db_tdb_ctx);	struct db_tdb_traverse_ctx ctx;	ctx.db = db;	ctx.f = f;	ctx.private_data = private_data;	return tdb_traverse(db_ctx->wtdb->tdb, db_tdb_traverse_func, &ctx);}
开发者ID:ekohl,项目名称:samba,代码行数:13,


示例23: wcache_invalidate_cache

void wcache_invalidate_cache(void){	struct winbindd_domain *domain;	for (domain = domain_list(); domain; domain = domain->next) {		struct winbind_cache *cache = get_cache(domain);		DEBUG(10, ("wcache_invalidate_cache: invalidating cache "			   "entries for %s/n", domain->name));		if (cache)			tdb_traverse(cache->tdb, traverse_fn, NULL);	}}
开发者ID:Nymphetaminer,项目名称:dsl-n55u,代码行数:13,


示例24: tdb_copy

static int tdb_copy(struct tdb_context *src, struct tdb_context *dst){	struct tdb_copy_data data;	int count;	data.dst = dst;	data.success = True;	count = tdb_traverse(src, traverse_copy_fn, (void *)(&data));	if ((count < 0) || (data.success == False)) {		return -1;	}	return count;}
开发者ID:gojdic,项目名称:samba,代码行数:14,


示例25: check_db

static void check_db(TDB_CONTEXT *the_tdb){	int tdbcount=-1;	if (the_tdb) {		tdbcount = tdb_traverse(the_tdb, test_fn, NULL);	} else {		printf("Error: No database opened!/n");	}	if (tdbcount<0) {		printf("Integrity check for the opened database failed./n");	} else {		printf("Database integrity is OK and has %d records./n", tdbcount);	}}
开发者ID:mahyarmd,项目名称:unifi-gpl,代码行数:15,


示例26: namecache_flush

void namecache_flush(void){	int result;	if (!namecache_tdb)		return;	result = tdb_traverse(namecache_tdb, tdb_traverse_delete_fn, NULL);	if (result == -1)		DEBUG(5, ("namecache_flush: error deleting cache entries/n"));	else		DEBUG(5, ("namecache_flush: deleted %d cache entr%s/n", 			  result, result == 1 ? "y" : "ies"));}
开发者ID:jophxy,项目名称:samba,代码行数:15,


示例27: brl_shutdown

void brl_shutdown(int read_only){	if (!tdb)		return;#if DONT_DO_THIS	/* doing this traversal could kill solaris machines under high load (tridge) */	/* delete any dead locks */	if (!read_only) {		BOOL check_self = True;		tdb_traverse(tdb, delete_fn, &check_self);	}#endif	tdb_close(tdb);}
开发者ID:jophxy,项目名称:samba,代码行数:16,


示例28: dump_tdb

static int dump_tdb(const char *fname, struct ldb_dn *dn, bool emergency){	TDB_CONTEXT *tdb;	struct tdb_logging_context logfn = { log_stderr };	tdb = tdb_open_ex(fname, 0, 0, O_RDONLY, 0, &logfn, NULL);	if (!tdb) {		fprintf(stderr, "Failed to open %s/n", fname);		return 1;	}	if (emergency) {		return tdb_rescue(tdb, emergency_walk, dn) == 0;	}	return tdb_traverse(tdb, traverse_fn, dn) == -1 ? 1 : 0;}
开发者ID:samba-team,项目名称:samba,代码行数:16,



注:本文中的tdb_traverse函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ tdsdump_log函数代码示例
C++ tdb_open_log函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。