阅读:2318回复:2
跪求BerkeleyDB数据库用tornado无法open问题?
刚刚接触Berkeley DB 数据库,在Oracle网站上下的最新版本。应用于Tornado2.2上。
将BerkeleyDB22.out下载到目标板后,写了一个最简单的程序用于熟悉,代码如下: #include "db.h" #include <stdio.h> int db_main(void) { int ret; DB *dbp; u_int32_t flags; if ((ret = db_create(&dbp, NULL, 0)) != 0) {fprintf(stderr, "db_create: %s\n", db_strerror(ret)); return 1;} if ((ret = dbp->set_pagesize(dbp, 1024)) != 0) {dbp->err(dbp, ret, "set_pagesize"); return 1;} if ((ret = dbp->set_cachesize(dbp, 0, 32 * 1024, 0)) != 0) {dbp->err(dbp, ret, "set_cachesize"); return 1;} flags = DB_CREATE; ret = dbp->open(dbp, NULL, "host:d://BD/single.db", NULL, DB_BTREE, flags, 0); if (ret==0) printf("Opening DB is successful!\n"); else {dbp->err(dbp, ret, "%spen", "host:d://BD/single.db"); return 0;} dbp->close(dbp, 0); return 0; } 编译下载后运行,报错如下: fstat: S_errno_EAGAIN host:d://BD/single.dbpen: S_errno_EAGAIN 在D盘目录中生成了__db.single.db文件,但文件大小为0. 调试运行发现,create可以正确进行,就当dbp->open时报错;前些天还报错为:errno:0xb; 这个问题折磨我两周了,也没有找到原因,希望高手指教,万分感谢。 |
|
沙发#
发布于:2007-08-20 17:05
路径错误吧?后一个只用了一个“/”,完全是猜的
|
|
板凳#
发布于:2007-08-29 15:37
问题已经解决了,是由去NTFS文件系统的关系。
BerkeleyDB数据库不支持NTFS文件系统。 我在硬盘上建立了dosFs系统后,就可以open了。 |
|