diff utils/gen-hex-lines.c @ 61:ffbbce856ac7

utils/gen-hex-lines: import from vband-misc repository
author Mychaela Falconia <falcon@freecalypso.org>
date Wed, 25 Sep 2024 18:48:17 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/utils/gen-hex-lines.c	Wed Sep 25 18:48:17 2024 +0000
@@ -0,0 +1,47 @@
+/*
+ * This program reads an arbitrary binary file and converts it into ASCII hex
+ * output with a specified number of bytes per line.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+main(argc, argv)
+	char **argv;
+{
+	FILE *inf, *outf;
+	int c, lcnt, bpl;
+
+	if (argc != 4) {
+		fprintf(stderr,
+			"usage: %s input.bin output.hex bytes-per-line\n",
+			argv[0]);
+		exit(1);
+	}
+	inf = fopen(argv[1], "r");
+	if (!inf) {
+		perror(argv[1]);
+		exit(1);
+	}
+	outf = fopen(argv[2], "w");
+	if (!outf) {
+		perror(argv[2]);
+		exit(1);
+	}
+	bpl = atoi(argv[3]);
+	lcnt = 0;
+	for (;;) {
+		c = getc(inf);
+		if (c < 0)
+			break;
+		fprintf(outf, "%02X", c);
+		lcnt++;
+		if (lcnt >= bpl) {
+			putc('\n', outf);
+			lcnt = 0;
+		}
+	}
+	if (lcnt)
+		putc('\n', outf);
+	exit(0);
+}