c hexdump「建议收藏」

c hexdump「建议收藏」记录下,有时要打日志用#ifndefhexdump_h#definehexdump_h#ifdef__cpluscplusextern”C”{#endif  voidhexDump(char*desc,void*addr,intlen);   #ifdef__cplusplus}#endif

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

记录下,有时要打日志用

#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);

}

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/193568.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • c# 调用Microsoft XPS Document Writer打印机,将Pdf文件转换成Xps文件「建议收藏」

    c# 调用Microsoft XPS Document Writer打印机,将Pdf文件转换成Xps文件「建议收藏」最近碰到个项目,其中有个需要将pdf文件转换成xps文件的功能,xps文件还算是新东西,所以基本没啥了解,通过一段时间的调查,本人算是找到了2个方法:  1)通过PDFNet第三发开发组件即可很容易的完成转换功能,并且还有其他针对pdf文件操作的功能,还是很强大的。当然啦,这个东     西是要买的,可以先下一个试用版先体验体验。    下载地址:http://w

  • P2v, V2v 实践

    P2v, V2v 实践P2V(物理机转虚拟机)p2v,就是physicalmachinetovirtualmachine,物理机转换成虚拟机,物理机有硬件和软件资源两部分,虚拟机同样也有硬件和软件资源,只是硬件是虚拟出来的。p2v是把物理机的软件资源(操作系统,数据等)迁移到虚拟机,虚拟机的物理资源(CPU、内存、磁盘等),根据现场情况分配创建。 p2v,一般会通过转换整个物理磁盘,或者某个分区成某种格式的镜像…

  • 開發中的DEV,QAS,UAT,PRD是什麼意思

    開發中的DEV,QAS,UAT,PRD是什麼意思IDES:InternetDemonstrationandEvaluationSystem交互式演示与评估系统DEV:DevelopmentSystem,开发系统QAS:QualityAssuranceSystem,质量保证系统UAT:UserAcceptanceTest用户验收测试PRD:ProductionSystem,生产系统…

  • 补码运算溢出判断方法是_一个8位二进制整数采用补码表示

    补码运算溢出判断方法是_一个8位二进制整数采用补码表示溢出判断方法一  用Xf和Yf表示被加数和加数补码的符号位,Zf为补码和的符号位。当出现Xf=Yf=0两数同为正,而Zf为负,即Zf=1时,有上溢。当出现Xf=Yf=1两数同为负,而Zf为正,即Zf=0时,有下溢。溢出判断方法二  当数值最高位有进位位C1=1,符号位没有进位C0=0时,或当数值最高位没有进位位C1=0,符号位有进位C0=1时,结果有溢出。溢出判断方法

  • 计算机系统构成及硬件基础知识

    目录数值转换R进制转十进制使用按权展开法。十进制转R进制使用短除法。二进制转八进制。二进制转十六进制。数的表示原码/反码/补码/移码浮点数运算计算机的基本组成计算机体系结构计算机体系软硬件的层次结构计算机的一些基本概念本章主要包括以下部分:数值转换 数的表示 计算机体系结构 计算机的组成 寻址方式 校验码数值转换R进制转十进制…

  • go语言runtime_中台怎么理解

    go语言runtime_中台怎么理解funcCaller(skipint)(pcuintptr,filestring,lineint,okbool)参数:skip是要提升的堆栈帧数,0-当前函数,1-上一层函数,….返回值:pc是uintptr这个返回的是函数指针file是函数所在文件名目录line所在行号ok是否可…

    2022年10月25日

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号