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

}

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Windows搭建SVN服务器「建议收藏」

    Windows搭建SVN服务器「建议收藏」写这篇文章其实是弥补6年前的一个遗憾,之前在第一家公司时,快要离职时,帮公司搭建一个SVN服务器,当时在Linux上面搭建,搭建的服务器不支持HTTP协议,无法在浏览器中查看,限于当时的能力,未能找到具体的解决方案。今天听同事在提SVN服务器,突然想搭建一个,搭建之后,Windows环境可以直接通过http协议访问,就这样吧,后续遇到SVN使用的具体问题再细究吧。需要的软件S…

    2022年7月19日
    13
  • CSS3自定义滚动条样式 -webkit-scrollbar「建议收藏」

    CSS3自定义滚动条样式 -webkit-scrollbar「建议收藏」有没有觉得浏览器自带的原始滚动条很不美观,同时也有看到很多网站的自定义滚动条显得高端,就连chrome32.0开发板都抛弃了原始的滚动条,美观多了。那webkit浏览器是如何自定义滚动条的呢?前言webkit支持拥有overflow属性的区域,列表框,下拉菜单,textarea的滚动条自定义样式,所以用处还是挺大的。当然,兼容所有浏览器的滚动条样式目前是不存在的。演示

    2025年6月26日
    1
  • bootstrap aria

    bootstrap aria

    2021年9月15日
    76
  • volatile为什么不能保证原子性

    volatile为什么不能保证原子性首先要了解的是,volatile可以保证可见性和顺序性,这些都很好理解,那么它为什么不能保证原子性呢?可见性可见性与Java的内存模型有关,模型采用缓存与主存的方式对变量进行操作,也就是说,每个线程都有自己的缓存空间,对变量的操作都是在缓存中进行的,之后再将修改后的值返回到主存中,这就带来了问题,有可能一个线程在将共享变量修改后,还没有来的及将缓存中的变量返回给主存中,另外一个线程就对…

    2022年7月27日
    10
  • 虚拟机VMware下载与安装教程(详细)

    虚拟机VMware下载与安装教程(详细)文章目录虚拟机VMware的下载虚拟机VMware的安装虚拟机VMware的下载虚拟机VMware的安装1.虚拟机VMware的下载官网地址:https://www.vmware.com/cn.html以下为官网界面选择“产品”—>“个人桌面”—>“WorkstationPro”选择“下载”(这里虽然是“试用Workstation15.5Pro”,但是点击“下载”之后,将会跳转到“Workstation16Pro”的下载界面)根据自己电脑的系统,比如你的电脑是Wi

    2022年6月7日
    39
  • JavaCore/HeapDump文件分析工具

    JavaCore/HeapDump文件分析工具IBMHeapAnalyzer更多信息见官方网站地址:http://www.alphaworks.ibm.com/tech/heapanalyzer 在我们的应用程序发生内存泄露的时候,会生成heapdump文件,文件名字类似于这样:heapdump.20081105.031129.172870.phd,即heapdump....phd。

    2022年10月2日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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