在我的程序中,我想确定文件是否是ELF(可执行和可链接格式)类型。如何使用C语言函数识别文件是否是elf文件?
答案 0 :(得分:11)
如果您要做的 only 事情是测试文件是否为ELF,则读取前16个字节以检查文件标识。前四个字节将等于{0x7f, 'E', 'L', 'F'}
。剩下的字节可能会有所不同,但检查它们会帮助您更加确定文件是否为elf。有关更多详细信息,请参见elf(3)手册页。
该手册页提供了一般解析ELF文件的足够信息,但如果您想做的不仅仅是检查格式,那么您应该使用库。同时查看the Elf Toolchain和the Binary File Descriptor Library。
更新:另一个替代方案是libmagic(3),它将为您读取ELF标头。如果你只对ELF感兴趣,这可能有点过头了,但是libmagic也知道几乎所有值得了解的文件格式。