在Linux中使用gcc确定文件是二进制可执行文件还是脚本文件

时间:2013-11-24 19:56:28

标签: c linux header elf

在Linux中,二进制可执行文件和脚本都可以标记为“可执行”。我想在我的gcc程序中确定该文件是脚本还是二进制可执行文件。

我读到有一个a.out.h文件允许分析文件的标题,但我不知道如何在我的代码中使用它。或者,如果有一个简单的解决方案。

1 个答案:

答案 0 :(得分:4)

你可以检查所谓的魔术字节。对于elf,前四个字节应该是十六进制的7f 45 4c 46。你必须关心字节顺序。

以二进制模式打开文件并读取前四个字节就足够了。

E.g。

shell$ hexdump -n 10 ./ni6_ga
0000000 457f 464c 0101 0301 0000