前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >c hexdump「建议收藏」

c hexdump「建议收藏」

作者头像
全栈程序员站长
发布2022-09-29 11:23:09
2410
发布2022-09-29 11:23:09
举报
文章被收录于专栏:全栈程序员必看

大家好,又见面了,我是你们的朋友全栈君。

记录下,有时要打日志用

#ifndef hexdump_h

#define hexdump_h

#include <SYS\TIMEB.H> //windows加入此头文件

#ifdef __cpluscplus

extern “C”

{

#endif

void hexDump (char *desc,void *addr,int len);

char* log_Time(void);

#ifdef __cplusplus

}

#endif

#endif /* hexdump_h */

#include <stdio.h>

#include “hexdump.h”

#include <sys/timeb.h>

#include <time.h>

char* log_Time(void)

{

struct tm *ptm;

struct timeb stTimeb;

static char szTime[19];

ftime(&stTimeb);

ptm = localtime(&stTimeb.time);

sprintf(szTime,“%02d-%02d %02d:%02d:%02d.%03d”,

ptm->tm_mon+1, ptm->tm_mday, ptm->tm_hour, ptm->tm_min, ptm->tm_sec, stTimeb.millitm);

szTime[18] =0;

return szTime;

}

#define SIZE 255

void hexDump (char *desc,void *addr,int len) {

int i;

unsignedchar buffLine[17];

unsignedchar *pc = (unsignedchar*)addr;

if (desc !=NULL){

printf (“%s %s:\n”,log_Time(), desc);

}

for (i =0; i < len; i++) {

if ((i %16) ==0) {

if (i !=0)

printf (” %s\n”, buffLine);

printf (“%04x “, i);

}

// Prints the HEXCODES that represent each chars.

printf (“%02x”, pc[i]);

if ((i %16) ==7)printf (” “);

printf (” “);

if ((pc[i] <0x20) || (pc[i] >0x7e)){

buffLine[i % 16] =‘.’;

}

else{

buffLine[i % 16] = pc[i];

}

buffLine[(i % 16) +1] =‘\0’;//Clears the next array buffLine

}

while ((i %16) !=0) {

printf (” “);

i++;

}

printf (” %s\n”, buffLine);

}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月15日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档