I'm currently working on a project which involves reading file
's magic files (without bindings). I'd like to know how it would be possible to read the file tests from the compiled binary magic.mgc
directly, in another language (like Go), as I'm unsure of how its contents should be interpreted.
使用其他语言的magic.mgc
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- dongposhi8677 2015-12-15 20:11关注
According to Christos Zoulas, main contributor of file:
If you want to use them directly you need to understand the binary format (which changes over time) and load it in your own data structures. [...] The code that parses the file is in apprentice.c. See check_buffer() for the reader and apprentice_compile() for the writer. There is a 4 byte magic number, followed by a 4 byte version number followed by MAGIG_SET (2) number of 4 byte counts one for each set (ascii, binary) followed by an array of 'struct magic' entries, in native byte format.
So that's the format one should expect! Nevertheless, it has to be parsed just like the raw files.
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报