■ ファイルをバイト配列で表示
/*
* f2ba.c : ファイルをバイト配列で表示
*
* Copyright (c) 2002 AOK.
*
* 2002.02.27 - 初版
* 2002.08.05 - 2版
*
* 【使い方】f2ba [入力ファイル名]
*
* プログラマくらいにしか使い道ないよね。
*
*/
#include <stdio.h>
#include <string.h>
#include <errno.h>
#define COLNUM 8
void getfname(char *s)
{
int i;
if (fgets(s, FILENAME_MAX+1, stdin) != NULL) {
for (i = 0; s[i] != '\0'; i++) {
if (s[i] == '\n') {
s[i] = '\0';
break;
}
}
}
}
int main(int argc, char *argv[])
{
FILE *fp;
int c, n = 0;
char s[FILENAME_MAX+1];
if (argc < 2) {
printf("filename ? : ");
getfname(s);
} else {
strncpy(s, argv[1], FILENAME_MAX+1);
s[FILENAME_MAX] = '\0';
}
fp = fopen(s, "rb");
if (fp == NULL) {
printf("%s", strerror(errno));
return 1;
}
while ((c = getc(fp)) != EOF) {
if (n != 0) {
putchar(',');
if (n % COLNUM == 0) printf("\n\t");
else putchar(0x20);
} else putchar('\t');
printf("0x%02x", c);
n++;
}
fclose(fp);
return 0;
}