【发布时间】:2013-01-23 01:02:33
【问题描述】:
我尝试使用此代码:
#include <stdio.h>
#include <magic.h>
int main(void)
{
char *actual_file = "/file/you/want.yay";
const char *magic_full;
magic_t magic_cookie;
magic_cookie = magic_open(MAGIC_MIME);
if (magic_cookie == NULL) {
printf("unable to initialize magic library\n");
return 1;
}
printf("Loading default magic database\n");
if (magic_load(magic_cookie, NULL) != 0) {
printf("cannot load magic database - %s\n", magic_error(magic_cookie));
magic_close(magic_cookie);
return 1;
}
magic_full = magic_file(magic_cookie, actual_file);
printf("%s\n", magic_full);
magic_close(magic_cookie);
return 0;
}
执行此代码时,会出现消息:“无法加载魔法数据库”。为什么?我不明白是什么原因……。
我使用 Visual Studio 2010 进行编译,没有任何构建错误。
【问题讨论】:
-
你的代码中没有任何东西是 C++,都是 C。
-
关于错误,请给出full错误信息,代码会从库中打印错误信息。
-
第 9 行中的“MAGIC_MIME”是什么?它看起来像一个 const 或 #define。也许你检查一下这个 magic_open() 函数需要什么。
标签: c visual-studio-2010 libmagic