WWW ページに mycat.c というプログラムを載せてある。 これは cat コマンドの真似をして、 ファイルの内容を標準出力 (通常は画面) に出力するだけのプログラムである。
| mycat.c をコンパイルする |
isc-xas06% gcc -o mycat mycat.c isc-xas06% ./mycat mycat.c |
| 日本語 EUC に対応した mydump.c の print_file |
void print_file(FILE * fp)
{
int c, c2;
/* ファイルの終りまで一文字ずつ c に読み込み、標準出力に書き出す */
while ((c = getc(fp)) != EOF) {
if (c >= 0x80) {
/* 0x80 以上だったら漢字の 1 バイト目だと判断して、
もう 1 バイト読んで、まとめて出力する。 */
c2 = getc(fp);
printf("0x%02x 0x%02x: %c%c\n", c, c2, c, c2);
} else if (c < 0x20 || c == 0x7f)
/* 0x20 未満または 0x7f の場合は文字コードのみ表示 */
printf("0x%02x\n", c);
else
/* それ以外の場合は文字コードと、その文字自身を出力 */
printf("0x%02x: %c\n", c, c);
}
}
|
isc-xas06% cat ascii_and_kanji.txt I am 桂田祐史. isc-xas06% ./mydump ascii_and_kanji.txt 0x49: I 0x20: 0x61: a 0x6d: m 0x20: 0xb7 0xcb: 桂 0xc5 0xc4: 田 0xcd 0xb4: 祐 0xbb 0xcb: 史 0x2e: . 0x0a isc-xas06% |