当前位置:  开发笔记 > 编程语言 > 正文

现有的C++ Hex Dump Code

如何解决《现有的C++HexDumpCode》经验,为你挑选了2个好方法。

我使用网络和串行通信软件工作很多,因此我经常需要使用代码来显示或记录数据包的十六进制转储.

每次我这样做,我都会从头开始编写另一个hex-dump例程.我将要再次这样做,但我想在这里问:那里有什么好的C++自由十六进制转储代码吗?

我想要的功能:

每行N个字节(其中N以某种方式可配置)

十六进制旁边的可选ASCII/UTF8转储

可配置的缩进,每行前缀,每行后缀等.

最小的依赖关系(理想情况下,我希望所有代码都在头文件中,或者是我可以粘贴的代码片段)

编辑: 澄清:我正在寻找可以轻松插入我自己的程序的代码,以写入stderr,stdout,日志文件或其他此类输出流.我不是在寻找命令行十六进制转储实用程序.



1> epatel..:

我经常使用我很久以前写的这个小片段.在调试等时,它可以简单易用地添加到任何地方......

#include 
#include 

void hexdump(void *ptr, int buflen) {
  unsigned char *buf = (unsigned char*)ptr;
  int i, j;
  for (i=0; i



2> nohat..:

unix工具xxd是作为一部分分发的vim,根据http://www.vmunix.com/vim/util.html#xxd,xxd的源代码是ftp://ftp.uni-erlangen.de:21/pub /utilities/etc/xxd-1.10.tar.gz.它是用C语言编写的,大约是721行.给出的唯一许可信息是:

* Distribute freely and credit me,
* make money and share with me,
* lose money and don't ask me.

unix工具hexdump可从http://gd.tuwien.ac.at/softeng/Aegis/hexdump.html获得.它是用C编写的,可以从源代码编译.它比xxd大很多,并且在GPL下分发.

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有