是否有任何书籍或教程可以教我如何阅读具有复杂结构的二进制文件。我做了很多尝试来制作一个必须读取复杂文件格式并将其保存在结构中的程序。但是由于堆溢出等导致程序崩溃,它总是失败。
问问题
421 次
3 回答
3
可能您最好的选择是查找有关二进制网络协议而不是文件格式的信息。主要问题(字节顺序、结构打包、序列化和反序列化指针,......)是相同的,但网络人往往更清楚这些问题,并且更明确地处理它们。从线路读取和写入二进制 blob 与处理磁盘上的二进制 blob 并没有太大区别。
您还可以在开源图形包(例如netpbm或The Gimp)中找到许多现有示例。开源办公包(例如LibreOffice)还会为您提供大量处理复杂和复杂的二进制格式的示例代码。
Google 的协议缓冲区或老式的 ONC RPC 和 XDR甚至可能对您有用。
我不知道有关此类事情的任何书籍或手册,但也许一堆现实生活中的工作示例对您来说比 HOWTO 指南更有用。
于 2011-04-25T01:12:22.737 回答
0
查看风味。它允许您使用类似 C 的结构指定格式,并将自动为 C++ 或 Java 中的数据生成解析器。
于 2011-04-25T02:08:12.770 回答
0
调试内存访问问题的最佳工具之一是 valgrind。下次我会试试的。至于书籍,您需要更具体地了解要解析的格式。有很多格式,其中许多格式彼此完全不同。
于 2011-04-25T00:36:31.980 回答