php源码编译libmagic,尝试使用/包含/编译第三方库libmagic. C/C++文...

__FILE__是保留的预处理符号宏,用于调试/记录.考虑以下示例:

// This file is called test.c

char *p = NULL;

if (!(p = malloc((1 * sizeof(char) + 1)))){

printf("Error in file: %s @ line %d

Malloc failed

", __FILE__, __LINE__);

exit(-1);

}

如果对malloc的调用失败,您将在上面的示例中看到如下输出:

Error in file: test.c @ line 23

Malloc failed

请注意,代码是如何获取原始源代码的.上面的示例说明了此用法.

我认为您的代码应如下所示:

// fileTypeTest.cpp, placed in file-5.03/src/ (source from link above)

#include

#include "magic.h"

int main(int argc, char **argv) {

if (argc > 1){

magic_t myt = magic_open(MAGIC_CONTINUE|MAGIC_ERROR/*|MAGIC_DEBUG*/|MAGIC_MIME);

magic_load(myt,NULL);

printf("magic output: '%s'

",magic_file(myt,argv[1]));

magic_close(myt);

}

return 0;

}

上面的代码检查是否有参数传递给该程序,并且该参数将是文件名,即argv [0]指向可执行文件名称(编译后的二进制文件),argv [1]指向字符数组(字符串)指示相关文件名.

要编译它:

g++ -I/usr/include -L/usr/lib/libmagic.so fileTestType.cpp -o fileTestType

g++ -L/usr/lib -lmagic fileTestType.cpp -o fileTestType

编辑:感谢Alok在这里指出错误…

如果不确定libmagic的位置,请在/usr/local/lib和/usr/local/include中查找-这取决于您的安装.

看到此内容以查找预定义的宏here.

希望这可以帮助,

最好的祝福,

汤姆.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值