打印内存的c语言实现
2016-05-25 16:30
316 查看
有很多时候,特别是linux服务端开发程序是,需要看内存块的信息,网上搜到的一个现成的代码,用了不错,记一下!
void HexDump(char *buf,int len,int addr) {int i,j,k;char binstr[80];for (i=0;i<len;i++) {if (0==(i%16)) {sprintf(binstr,"%08x -",i+addr);sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);} else if (15==(i%16)) {sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);sprintf(binstr,"%s ",binstr);for (j=i-15;j<=i;j++) {sprintf(binstr,"%s%c",binstr,('!'<buf[j]&&buf[j]<='~')?buf[j]:'.');}printf("%s\n",binstr);} else {sprintf(binstr,"%s %02x",binstr,(unsigned char)buf[i]);}}if (0!=(i%16)) {k=16-(i%16);for (j=0;j<k;j++) {sprintf(binstr,"%s ",binstr);}sprintf(binstr,"%s ",binstr);k=16-k;for (j=i-k;j<i;j++) {sprintf(binstr,"%s%c",binstr,('!'<buf[j]&&buf[j]<='~')?buf[j]:'.');}printf("%s\n",binstr);}}int main(void){char buf[40] = "125a3ADC566742->->45!23afasdb2345~+asd";HexDump(buf, strlen(buf), (int)buf);return 0;}
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- 完全指南:在 Linux 中如何打印和管理打印机
- IE7降低内存和降低CPU的几个技巧
- 如何高效的使用内存
- DOS下内存的配置
- Lua和C语言的交互详解
- XP/win2003下发现1G的内存比512M还慢的解决方法
- 基于Silverlight打印的使用详解,是否为微软的Bug问题
- PowerShell实现动态获取当前脚本运行时消耗的内存
- C#基本打印事件用法实例
- IE中用VBScript不提示直接打印的代码
- C#实现把dgv里的数据完整的复制到一张内存表的方法
- SQL语句实现查询SQL Server内存使用状况
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解