读取复杂的二进制文件格式

| 有没有书籍或教程可以帮助我学习如何读取结构复杂的二进制文件。我做了很多尝试来制作一个程序,该程序必须读取复杂的文件格式并将其保存在结构中。但是它总是由于堆溢出等原因而失败,从而导致程序崩溃。     
已邀请:
最好的选择是查找有关二进制网络协议而不是文件格式的信息。主要问题(字节顺序,结构打包,序列化和反序列化的指针,...)是相同的,但网络人员往往更了解这些问题,并且在处理方式上更加明确。与在磁盘上读写二进制二进制对象确实与处理磁盘上的二进制二进制对象没有太大不同。 您还可以在开源图形包(例如netpbm或The Gimp)中找到很多现有示例。开源Office软件包(例如LibreOffice)还将为您提供许多示例代码,这些示例代码处理复杂且复杂的二进制格式。 Google的协议缓冲区或老式的ONC RPC和XDR甚至可能对您有用。 我不知道有关此类事情的任何书籍或手册,但也许比起HOWTO指南,许多现实生活中的工作实例对您更有用。     
调试内存访问问题的最佳工具之一是valgrind。下次我可以尝试一下。对于书籍,您需要更详细地了解要解析的格式。格式很多,其中许多彼此根本不同。     
查看风味。它允许您使用类似C的结构来指定格式,并自动为C ++或Java中的数据生成解析器。     

要回复问题请先登录注册