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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 一分钟教会你固态硬盘数据恢复方法

    不少人都知道,固态硬盘上丢失了数据是很难恢复的,但是也有一些数据丢失的情况,是可以尝试恢复数据的,比如说误删除分区、分区变为RAW状态。针对这些情况,今天呢,小编给大家分享一下固态硬盘数据恢复方法,我们需要借助一款好用的数据恢复软件——易我数据恢复,该软件可深度扫描磁盘数据,根据删除标记、文件目录信息和文件内容等三种方式分别检索文件,搜寻更全面。(详情访问:https://www.easeus.com.cn/data-recovery-software/data-recovery-wizard.html

    2022年4月5日
    308
  • 软件著作权说明书模板_软件设计方案怎么写

    软件著作权说明书模板_软件设计方案怎么写1.引言1.1编写目的1.2项目背景1.2项目概要总体要求2.1系统功能概述2.2系统功能要求软件开发3.1软件需求分析3.2软件的概要设计3.2.1软件概要设计说明3.2.3基本设计概念和处理流程3.3软件的详细设计3.3.1系统结构3.3.2模块设计说明3.3.3爬虫模块3.3.4日志模块3.3.5数…

    2022年9月22日
    4
  • tty是啥_linuxtty中文

    tty是啥_linuxtty中文1.gcctbzftp: ftp://ftp.int.ru/pub/FreeBSD/ports/i386/packages-8-stable/lang/2.mountcdrom:mount/dev/hdc/mnt/cdrom InstallttylinuxinVritualBox1.downloadhttp://ttylinux.net/Downlo…

    2022年8月12日
    10
  • 深入理解双亲委派机制及作用「建议收藏」

    java双亲委派机制及作用一、什么是双亲委派机制当某个类加载器需要加载某个.class文件时,它首先把这个任务委托给他的上级类加载器,递归这个操作,如果上级的类加载器没有加载,自己才会去加载这个类。二、类加载器BootstrapClassLoader(启动类加载器)c++…

    2022年4月17日
    76
  • java定时器之Timer使用与原理分析[通俗易懂]

    java定时器之Timer使用与原理分析[通俗易懂]Timer和TimerTaskTimer是jdk中提供的一个定时器工具,使用的时候会在主线程之外起一个单独的线程执行指定的计划任务,可以指定执行一次或者反复执行多次。TimerTask是一个实现了Runnable接口的抽象类,代表一个可以被Timer执行的任务。【使用举例】【schedule(TimerTasktask,longdelay)延迟delay毫秒执行】…

    2022年7月7日
    23
  • c++ map有序还是无序_hashmap与map的区别

    c++ map有序还是无序_hashmap与map的区别概述简单对比map和unordered_map的性能。map内部是红黑树,在插入元素时会自动排序,而无序容器unordered_map内部是散列表,通过哈希而不是排序来快速操作元素,使得效率更高。当你不需要排序时选择unordered_map的效率更高。测试范例测试代码#include&lt;iostream&gt;#include&lt;string&gt;#in…

    2022年9月23日
    4

发表回复

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

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