c - C语言函数如何判断文件是否为elf文件?

标签 c linux elf

在我的程序中,我想识别一个文件是否是ELF(Executable and Linkable Format)类型。 C语言函数如何判断文件是否为elf文件?

最佳答案

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

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

更新:还有一个选择是 libmagic(3)它将为您读取 ELF header 。如果您只对 ELF 感兴趣,这可能有点矫枉过正,但 libmagic 也知道几乎所有值得了解的文件格式。

关于c - C语言函数如何判断文件是否为elf文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52185145/

相关文章:

linux - 在 amd64 中调用附近

linux - 如何使linux终端刷新帧缓冲区

c - 如何从编译的elf文件中提取所有函数,即使该函数没有符号

c++ - 如何获取 ELF 二进制文件中与 objdump 输出的标签相对应的文件偏移量?

c - 使用哈希表获取节点

c - GCC 内联汇编 : constraint for direct memory reference

C 编程——值交换是在随机数组槽中生成新值

c - execlp() 系统调用输出错误

regex - 我可以在 bash shell 脚本中使用正则表达式吗

gcc - ELF 文件中的 VirtualAddress、LoadAddress 和 PhysicalAddress?