Linux C | 查看二进制文件的小工具HexView

Linux C | 查看二进制文件的小工具HexView

源码:

/*******************************************************************
 *   > File Name: HexView.cpp
 *   > Create Time: 2021年11月22日 星期一 17时47分27秒
 ******************************************************************/

#include <iostream>
#include <iomanip>
#include <stdio.h>
using namespace std;

int main(int argc, char* argv[])
{
   if(argc != 2) {
       cout << "Usage:" << argv[0] << " <file>" << endl;
       return (-1);
   }

   FILE *fp = NULL;
   int c;

   if((fp = fopen(argv[1], "r")) == NULL){
        cout << "file " << argv[1] << " open error" << endl;
        return (-2);
   }

   int count = 1;
   while((c = fgetc(fp)) != EOF){
       if (count %  17 == 0){
            cout << endl;
       }else{
            cout << hex << setw(2) << setfill('0') << c << " ";
       }

       count ++;
   }
   cout << endl;

   fclose(fp);

    return 0;
}

编译:

lanfeiy@msil-virtual-machine:~/test$ make
g++ -o HexView HexView.cpp -g -Wall

运行:

lanfeiy@msil-virtual-machine:~/test$ ./HexView white.bmp
42 4d 76 01 00 00 00 00 00 00 36 00 00 00 28 00
00 0a 00 00 00 0a 00 00 00 01 00 18 00 00 00 00
40 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00 00
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff 00 00 ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff 00 00 ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff 00 00 ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff 00 00 ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff 00 00 ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff 00 00 ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
00 00 ff ff ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 00

lanfeiy@msil-virtual-machine:~/test$ ./HexView black.bmp
42 4d 76 01 00 00 00 00 00 00 36 00 00 00 28 00
00 0a 00 00 00 0a 00 00 00 01 00 18 00 00 00 00
40 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00


拓展链接

BMP图片的文件结构

BMP图像格式及文件构成

MP4文件格式的解析,以及MP4文件的分割算法

SOA/软件架构设计—面向服务的架构(SOA详细解释)

CommonAPI C++ Tutorial

D-Bus Tutorial

Qt实战小项目

这些C++的练手项目,相当于你2年的工作经验,拿走不谢

openwrt安装GPS设备,使用GPSD获取GPS信息

GPSD架构介绍及交叉编译和使用

内存模型系列(下)- 内存持久性模型(Memory Persistency

联咏和海思哪个好 - CSDN

玩转Google开源C++单元测试框架Google Test系列(gtest)(总)

googletest安装与使用

dlt-daemon安装教程

DLT(Diagnostic Log and Trace)嵌入式系统程序运行记录

dlt-logDBus

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值