如何检测.o/.a/compiled object/executable c/c++;没有扩展?(然后在文件中发布';what';以查看编译时使用的内容)

如何检测.o/.a/compiled object/executable c/c++;没有扩展?(然后在文件中发布';what';以查看编译时使用的内容),executable,detection,file-type,.obj,.a,Executable,Detection,File Type,.obj,.a,如果没有文件扩展名,如何检测文件是编译对象(.o.a(库))还是可执行文件 我想这样做,这样我就可以发出标准的what命令来查看构建二进制文件使用了哪些.c/.h文件 大概在文件的开头会有某种类型的头,或者要查找的其他模式(?) 我们已经在这里和其他地方看了一下,但答案往往是关于MIME类型和此类文件的web开发/处理: 如果您使用的是Unix/Linux,file命令可用于确定文件类型,而无需依赖文件扩展名 它会查看“这是一个特殊的设备而不是一个普通的文件”,然后查找标识特定文件格式的

如果没有文件扩展名,如何检测文件是编译对象(.o.a(库))还是可执行文件

我想这样做,这样我就可以发出标准的what命令来查看构建二进制文件使用了哪些.c/.h文件

大概在文件的开头会有某种类型的头,或者要查找的其他模式(?)

我们已经在这里和其他地方看了一下,但答案往往是关于MIME类型和此类文件的web开发/处理:


如果您使用的是Unix/Linux,
file
命令可用于确定文件类型,而无需依赖文件扩展名


它会查看“这是一个特殊的设备而不是一个普通的文件”,然后查找标识特定文件格式的“幻数”,等等。

(如果您使用的是Unix/Linux,
file
命令是否有用?+1是的!e、 g.:ELF 32位LSB可执行文件,Intel 80386,版本1(SYSV),适用于GNU/Linux 2.2.5,动态链接(使用共享libs),适用于GNU/Linux 2.2.5,未剥离--我可以使用正则表达式解析此文本数据,因此这对我来说应该是可行的。那你为什么不把这个作为你的答案而不是评论呢?别害羞!如果你将此作为答案提交,我可能会+1并接受它,我会给其他人一个机会,但你的建议对我来说很好。因为这是一个猜测:P我将提交:)+1这应该满足我的需要-谢谢:例如ELF 32位LSB可执行文件,Intel 80386,版本1(SYSV),适用于GNU/Linux 2.2.5,动态链接(使用共享libs),对于GNU/Linux2.2.5,不是剥离的——我可以使用regex解析这个文本数据,所以这对我来说应该是可行的。