【Linux C语言编程】使用hexdump打印字节数组

本文介绍了如何在Linux环境下,通过C语言编写一个函数,实现与hexdump命令类似的字节数组打印功能。该函数将字节数组的输出分为字节偏移、16进制数据和ASCII码部分,并在遇到不可见字符时使用'.'替代。提供了一个简单的调用示例,供读者参考和学习。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天给大家介绍一个非常有效的打印字节数组的函数,它的显示方式跟Linux命令行的hexdump的输出非常类似。

 

先给大家上一个效果图:

它的输出分为三部分:字节偏移量、16进制字节数据、ASCII码可显字符;

其中ASCII部分,如果对应的字节是非可显字符,则用.代替。 

立马送上它的函数实现:


#include <stdio.h>
#include <string.h>

int log_hexdump(const char *title, const unsigned char *data, int len)
{
    char str[160], octet[10];
    int ofs, i, k, d;
    const unsigned char *buf = (const unsigned char *)data;
    const char dimm[] = "+------------------------------------------------------------------------------+";

    printf("%s (%d bytes):\r\n", title, len);
    printf("%s\r\n", dimm);
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

架构师李肯

您的鼓励是我前进的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值