#include #include #include int main(int argc, char **argv) { char buf[256], s[100]; int c; FILE *fp; if (argc != 3) { fprintf(stderr, "Usage: %s varname file\n", *argv); return 1; } if (!(fp = fopen(argv[2], "rb"))) { fputs("Cannot open ", stderr); perror(argv[2]); return 1; } fseek(fp, 0, SEEK_END); long len = ftell(fp); fseek(fp, 0, SEEK_SET); printf("unsigned int %s_len = %u;\nunsigned char %s[] = {\n", argv[1], len, argv[1]); strcpy(buf, " "); while ((c = getc(fp)) != EOF) { sprintf(s, "%u,", (unsigned char) c); if (strlen(s) + strlen(buf) >= 80) puts(buf), strcpy(buf, " "); strcat(buf, s); } if (*buf) strcat(buf, "\n"); printf("%s};\n", buf); fprintf(stderr, "%s_len = %u\n", argv[1], len); return 0; }