diff utils/gen-hex-c.c @ 13:871e83f0cb76

utils: gen-hex-c utility written
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 07 Apr 2024 19:41:03 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/utils/gen-hex-c.c	Sun Apr 07 19:41:03 2024 +0000
@@ -0,0 +1,45 @@
+/*
+ * This program reads an arbitrary binary file and converts it into
+ * ASCII hex output of the form '0xXX,0xXX,...' intended for inclusion
+ * into C sources as a const char array.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+main(argc, argv)
+	char **argv;
+{
+	FILE *inf, *outf;
+	int c, lcnt;
+
+	if (argc != 3) {
+		fprintf(stderr, "usage: %s input.bin output.c\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);
+	}
+	lcnt = 0;
+	for (;;) {
+		c = getc(inf);
+		if (c < 0)
+			break;
+		fprintf(outf, "0x%02X,", c);
+		lcnt++;
+		if (lcnt >= 16) {
+			putc('\n', outf);
+			lcnt = 0;
+		}
+	}
+	if (lcnt)
+		putc('\n', outf);
+	exit(0);
+}