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

📄 tdbiterate.c

📁 Linux下的一个关系数据库源代码
💻 C
字号:
#include <stdlib.h>#include <stdio.h>#include <fcntl.h>#include <unistd.h>#include <string.h>#include <fcntl.h>#include <sys/mman.h>#include <sys/stat.h>#include <sys/time.h>#include "tdb.h"int tdb_print(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA data, void *state){	printf("Traverse: %s = %s\n", key.dptr, data.dptr);	return 0;}int main(int argc, char *argv[]){	TDB_DATA k,d;	TDB_CONTEXT *db;	int i;	db = tdb_open("test.tdb", 307, TDB_CLEAR_IF_FIRST, 		      O_RDWR | O_CREAT | O_TRUNC, 0600);	k.dptr = "hello";	k.dsize = sizeof("hello");	d.dptr = "HELLO";	d.dsize = sizeof("HELLO");	tdb_store(db, k, d, TDB_INSERT);	k.dptr = "world";	k.dsize = sizeof("world");	d.dptr = "WORLD";	d.dsize = sizeof("WORLD");	tdb_store(db, k, d, TDB_INSERT);	if (tdb_traverse(db, tdb_print, NULL) != 2) {		fprintf(stderr, "Traverse didn't complete!\n");		exit(1);	}	/* Leaky, but who cares. */	for (i = 0, k = tdb_firstkey(db); k.dptr; k = tdb_nextkey(db, k), i++){		d = tdb_fetch(db, k);		printf("Iterate: %s = %s\n", k.dptr, d.dptr);	}	if (i != 2) {		fprintf(stderr, "Iterate didn't complete!\n");		exit(1);	}	return 0;}

⌨️ 快捷键说明

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