Git Product home page Git Product logo

xdump's Introduction

xdump

Hexdump a file

A simple version of hexdump to print the contents of a file.

Usage:
    xdump <filename>

An example: A dump of the source file xdump.c

00000000	2369 6E63 6C75 6465 203C 7374 6469 6F2E  |#include <stdio.|
00000010	683E 0A23 696E 636C 7564 6520 3C73 7464  |h>.#include <std|
00000020	6C69 622E 683E 0A23 696E 636C 7564 6520  |lib.h>.#include |
00000030	3C73 7472 696E 672E 683E 0A23 696E 636C  |<string.h>.#incl|
00000040	7564 6520 3C73 7464 696E 742E 683E 0A23  |ude <stdint.h>.#|
00000050	696E 636C 7564 6520 3C65 7272 6E6F 2E68  |include <errno.h|
00000060	3E0A 2369 6E63 6C75 6465 203C 6374 7970  |>.#include <ctyp|
00000070	652E 683E 0A0A 2364 6566 696E 6520 4255  |e.h>..#define BU|
00000080	4646 4552 5F53 495A 4520 2020 2020 2020  |FFER_SIZE       |
00000090	2020 2020 2020 2020 2020 3235 360A 0A73  |          256..s|
000000A0	7461 7469 6320 7569 6E74 385F 7420 5F62  |tatic uint8_t _b|
000000B0	7566 5B42 5546 4645 525F 5349 5A45 5D3B  |uf[BUFFER_SIZE];|
000000C0	0A0A 0A76 6F69 6420 6865 7844 756D 7028  |...void hexDump(|
000000D0	766F 6964 202A 2062 7566 6665 722C 2075  |void * buffer, u|
000000E0	696E 7433 325F 7420 6275 6666 6572 4C65  |int32_t bufferLe|
000000F0	6E29 0A7B 0A20 2020 2069 6E74 2020 2020  |n).{.    int    |
00000100	2020 2020 2020 2020 2020 2020 2020 2020  |                |
00000110	2069 3B0A 2020 2020 696E 7420 2020 2020  | i;.    int     |
00000120	2020 2020 2020 2020 2020 2020 2020 2020  |                |
00000130	6A20 3D20 303B 0A20 2020 2075 696E 7438  |j = 0;.    uint8|
00000140	5F74 202A 2020 2020 2020 2020 2020 2020  |_t *            |
00000150	2020 2062 7566 3B0A 2020 2020 7374 6174  |   buf;.    stat|
00000160	6963 2063 6861 7220 2020 2020 2020 2020  |ic char         |
00000170	2020 2020 737A 4153 4349 4942 7566 5B31  |    szASCIIBuf[1|
00000180	375D 3B0A 2020 2020 7374 6174 6963 2075  |7];.    static u|
00000190	696E 7433 325F 7420 2020 2020 2020 2020  |int32_t         |
000001A0	6F66 6673 6574 203D 2030 3B0A 0A20 2020  |offset = 0;..   |
000001B0	2062 7566 203D 2028 7569 6E74 385F 7420  | buf = (uint8_t |
000001C0	2A29 6275 6666 6572 3B0A 0A20 2020 2066  |*)buffer;..    f|
000001D0	6F72 2028 6920 3D20 303B 6920 3C20 6275  |or (i = 0;i < bu|
000001E0	6666 6572 4C65 6E3B 692B 2B29 207B 0A20  |fferLen;i++) {. |
000001F0	2020 2020 2020 2069 6620 2828 6920 2520  |       if ((i % |
00000200	3136 2920 3D3D 2030 2920 7B0A 2020 2020  |16) == 0) {.    |
00000210	2020 2020 2020 2020 6966 2028 6920 213D  |        if (i !=|
00000220	2030 2920 7B0A 2020 2020 2020 2020 2020  | 0) {.          |
00000230	2020 2020 2020 737A 4153 4349 4942 7566  |      szASCIIBuf|
00000240	5B6A 5D20 3D20 303B 0A20 2020 2020 2020  |[j] = 0;.       |
00000250	2020 2020 2020 2020 206A 203D 2030 3B0A  |         j = 0;.|
00000260	0A20 2020 2020 2020 2020 2020 2020 2020  |.               |
00000270	2070 7269 6E74 6628 2220 207C 2573 7C5C  | printf("  |%s|\|
00000280	6E22 2C20 737A 4153 4349 4942 7566 293B  |n", szASCIIBuf);|
00000290	0A20 2020 2020 2020 2020 2020 207D 0A20  |.            }. |
000002A0	2020 2020 2020 2020 2020 2020 2020 200A  |               .|
000002B0	2020 2020 2020 2020 2020 2020 7072 696E  |            prin|
000002C0	7466 2822 2530 3858 5C74 222C 206F 6666  |tf("%08X\t", off|
000002D0	7365 7429 3B0A 2020 2020 2020 2020 2020  |set);.          |
000002E0	2020 6F66 6673 6574 202B 3D20 3136 3B0A  |  offset += 16;.|
000002F0	2020 2020 2020 2020 7D0A 0A20 2020 2020  |        }..     |
00000300	2020 2069 6620 2828 6920 2520 3229 203D  |   if ((i % 2) =|
00000310	3D20 3020 2626 2028 6920 2520 3136 2920  |= 0 && (i % 16) |
00000320	3E20 3029 207B 0A20 2020 2020 2020 2020  |> 0) {.         |
00000330	2020 2070 7269 6E74 6628 2220 2229 3B0A  |   printf(" ");.|
00000340	2020 2020 2020 2020 7D0A 0A20 2020 2020  |        }..     |
00000350	2020 2070 7269 6E74 6628 2225 3032 5822  |   printf("%02X"|
00000360	2C20 6275 665B 695D 293B 0A20 2020 2020  |, buf[i]);.     |
00000370	2020 2073 7A41 5343 4949 4275 665B 6A2B  |   szASCIIBuf[j+|
00000380	2B5D 203D 2069 7370 7269 6E74 2862 7566  |+] = isprint(buf|
00000390	5B69 5D29 203F 2062 7566 5B69 5D20 3A20  |[i]) ? buf[i] : |
000003A0	272E 273B 0A20 2020 207D 0A0A 2020 2020  |'.';.    }..    |
000003B0	2F2A 0A20 2020 202A 2A20 5072 696E 7420  |/*.    ** Print |
000003C0	6669 6E61 6C20 4153 4349 4920 626C 6F63  |final ASCII bloc|
000003D0	6B2E 2E2E 0A20 2020 202A 2F0A 2020 2020  |k....    */.    |
000003E0	737A 4153 4349 4942 7566 5B6A 5D20 3D20  |szASCIIBuf[j] = |
000003F0	303B 0A20 2020 2070 7269 6E74 6628 2220  |0;.    printf(" |
00000400	207C 2573 7C5C 6E22 2C20 737A 4153 4349  | |%s|\n", szASCI|
00000410	4942 7566 293B 0A7D 0A0A 696E 7420 6D61  |IBuf);.}..int ma|
00000420	696E 2869 6E74 2061 7267 632C 2063 6861  |in(int argc, cha|
00000430	7220 2A2A 2061 7267 7629 0A7B 0A20 2020  |r ** argv).{.   |
00000440	2046 494C 4520 2A20 2020 2020 2020 2020  | FILE *         |
00000450	2066 7074 723B 0A20 2020 2063 6861 7220  | fptr;.    char |
00000460	2A20 2020 2020 2020 2020 2070 737A 4669  |*          pszFi|
00000470	6C65 6E61 6D65 3B0A 2020 2020 7569 6E74  |lename;.    uint|
00000480	385F 7420 2A20 2020 2020 2020 6275 6666  |8_t *       buff|
00000490	6572 3B0A 2020 2020 7569 6E74 3332 5F74  |er;.    uint32_t|
000004A0	2020 2020 2020 2020 6279 7465 7352 6561  |        bytesRea|
000004B0	643B 0A0A 2020 2020 6966 2028 6172 6763  |d;..    if (argc|
000004C0	203E 2031 2920 7B0A 2020 2020 2020 2020  | > 1) {.        |
000004D0	7073 7A46 696C 656E 616D 6520 3D20 7374  |pszFilename = st|
000004E0	7264 7570 2826 6172 6776 5B31 5D5B 305D  |rdup(&argv[1][0]|
000004F0	293B 0A20 2020 207D 0A20 2020 2065 6C73  |);.    }.    els|
00000500	6520 7B0A 2020 2020 2020 2020 7072 696E  |e {.        prin|
00000510	7466 2822 5573 6167 653A 2078 6475 6D70  |tf("Usage: xdump|
00000520	203C 6669 6C65 6E61 6D65 3E5C 6E5C 6E22  | <filename>\n\n"|
00000530	293B 0A20 2020 2020 2020 2072 6574 7572  |);.        retur|
00000540	6E20 303B 0A20 2020 207D 0A0A 2020 2020  |n 0;.    }..    |
00000550	6275 6666 6572 203D 205F 6275 663B 0A0A  |buffer = _buf;..|
00000560	2020 2020 6670 7472 203D 2066 6F70 656E  |    fptr = fopen|
00000570	2870 737A 4669 6C65 6E61 6D65 2C20 2272  |(pszFilename, "r|
00000580	6222 293B 0A0A 2020 2020 6966 2028 6670  |b");..    if (fp|
00000590	7472 203D 3D20 4E55 4C4C 2920 7B0A 2020  |tr == NULL) {.  |
000005A0	2020 2020 2020 6670 7269 6E74 6628 7374  |      fprintf(st|
000005B0	6465 7272 2C20 2246 6169 6C65 6420 746F  |derr, "Failed to|
000005C0	206F 7065 6E20 6669 6C65 2025 733A 2573  | open file %s:%s|
000005D0	5C6E 222C 2070 737A 4669 6C65 6E61 6D65  |\n", pszFilename|
000005E0	2C20 7374 7265 7272 6F72 2865 7272 6E6F  |, strerror(errno|
000005F0	2929 3B0A 2020 2020 2020 2020 6578 6974  |));.        exit|
00000600	282D 3129 3B0A 2020 2020 7D0A 0A20 2020  |(-1);.    }..   |
00000610	2077 6869 6C65 2028 2166 656F 6628 6670  | while (!feof(fp|
00000620	7472 2929 207B 0A20 2020 2020 2020 2062  |tr)) {.        b|
00000630	7974 6573 5265 6164 203D 2066 7265 6164  |ytesRead = fread|
00000640	2862 7566 6665 722C 2031 2C20 4255 4646  |(buffer, 1, BUFF|
00000650	4552 5F53 495A 452C 2066 7074 7229 3B0A  |ER_SIZE, fptr);.|
00000660	0A20 2020 2020 2020 2069 6620 2862 7974  |.        if (byt|
00000670	6573 5265 6164 203E 2030 2920 7B0A 2020  |esRead > 0) {.  |
00000680	2020 2020 2020 2020 2020 6865 7844 756D  |          hexDum|
00000690	7028 6275 6666 6572 2C20 6279 7465 7352  |p(buffer, bytesR|
000006A0	6561 6429 3B0A 2020 2020 2020 2020 7D0A  |ead);.        }.|
000006B0	2020 2020 7D0A 0A20 2020 2066 636C 6F73  |    }..    fclos|
000006C0	6528 6670 7472 293B 0A0A 2020 2020 7265  |e(fptr);..    re|
000006D0	7475 726E 2030 3B0A 7D0A  |turn 0;.}.|

xdump's People

Contributors

guywilson avatar

Watchers

James Cloos avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.