답장 및 의견을 보내 주셔서 감사합니다.
는 이걸로 해결 :
const char *w_get_mime(const char *arg, const char *file, int line_no)
{
const char *magic_full;
magic_t magic_cookie;
if(arg == NULL)
w_report_error("called with NULL argument.",file,line_no,__func__,0,1,error);
else if ((magic_cookie = magic_open(MAGIC_MIME)) == NULL)
report_error("unable to initialize magic library.",0,1,error);
else if (magic_load(magic_cookie, NULL) != 0)
{
magic_close(magic_cookie);
snprintf(globals.err_buff,MAX_BUFF,"cannot load magic database - %s .",magic_error(magic_cookie));
report_error(globals.err_buff,0,1,error);
}
magic_full = magic_file(magic_cookie, arg);
magic_close(magic_cookie);
return magic_full;
}
덕분에 많이! :)
"MIME 형식의 파일을 알아야합니다"-> 가능한 복제 http://stackoverflow.com/questions/9137732/how-to-generate-the-http-content-type-header -in-c/9137758, 나는 대답했다. http://stackoverflow.com/a/9137758/960195 –
바이너리 이상이 필요하다. File은/etc/magic을 사용하는데, 여기에는 다양한 파일 유형에 대한 "지문"이 들어 있습니다. 가장 간단하고 간단한 방법은 단순히 popen() 또는 system()을 사용하는 것입니다. – wildplasser
'popen' 또는'system'을 사용하는 것은 (항상) 아주 나쁜 생각입니다. 'libmagic' 또는'file (1)'을 호출하려면'posix_spawn'을 사용해야합니다. –