Tag: 文件类型

尝试使用/ include /编译第三方库,libmagic。 C / C ++文件类型检测

在寻找一种方法来检测文件流的文件类型之后,我发现Unix 文件命令使用了libmagic,我试图自己使用这个库,但我无法让它工作。 我很少在我自己中集成第三方代码,所以这可能也是我问题的重要部分。 为什么: 我这样做是因为我有一个便携式gui图像查看应用程序,需要从给定的文件名中检测存档文件类型(rar,zip,more?),然后检测内部的图像文件类型。 我希望我可以在Windows和Linux(和Mac)上使用libmagic,所以如果不是这样,请立即停止我b / c我需要找到别的东西。 尝试: 我发现有人做了类似的事情 ,但我不能按照他们正在做的事情,而且我不知道如何编译/运行任何东西来开始搞乱。 我的第一直觉是做以下事情: // fileTypeTest.cpp, placed in file-5.03/src/ (source from link above) #include #include “magic.h” int main() { magic_t myt = magic_open(MAGIC_CONTINUE|MAGIC_ERROR/*|MAGIC_DEBUG*/|MAGIC_MIME); magic_load(myt,NULL); printf(“magic output: ‘%s’\n”,magic_file(myt,__FILE__)); magic_close(myt); return 0; } 然后编译类似于: $ gcc magic.c -o magic.o $ g++ fileTypeTest.cpp -o fileTypeTest magic.o 哪个(显然?)不起作用。 我甚至不知道从哪里开始寻找,要问什么问题,或者这是否是首先解决我原来问题的正确方向。 编辑:现在我有 #include […]

在C中确定文件类型

我正在使用Linux机器上的C程序,该程序显示作为程序参数的文件的文件类型。 程序需要确定文件是否是以下任何一个:目录,设备,(常规)文件,链接,套接字或fifo。 我不确定如何确定文件类型。 到目前为止,这是我的代码(不多): int main(int argc, char **argv) { if( argc == 1 ) /* default: current directory */ puts(“Directory”); else while( –argc > 0 ) determine_ftype(*++argv); return 0; } 谢谢!