如何使用C语言函数识别文件是否是elf文件?

时间:2014-04-11 03:09:57

标签: c linux elf

在我的程序中,我想确定文件是否是ELF(可执行和可链接格式)类型。如何使用C语言函数识别文件是否是elf文件?

1 个答案:

答案 0 :(得分:11)

如果您要做的 only 事情是测试文件是否为ELF,则读取前16个字节以检查文件标识。前四个字节将等于{0x7f, 'E', 'L', 'F'}。剩下的字节可能会有所不同,但检查它们会帮助您更加确定文件是否为elf。有关更多详细信息,请参见elf(3)手册页。

该手册页提供了一般解析ELF文件的足够信息,但如果您想做的不仅仅是检查格式,那么您应该使用库。同时查看the Elf Toolchainthe Binary File Descriptor Library

更新:另一个替代方案是libmagic(3),它将为您读取ELF标头。如果你只对ELF感兴趣,这可能有点过头了,但是libmagic也知道几乎所有值得了解的文件格式。