/* ファイルの16進ダンプを行なう。 ★使い方(1) Windowsでは,kskdump.exeのアイコンに,16進ダンプしたいファイルのアイコンを ドロップすればよい。 ★使い方(2) コマンドプロンプトでは次のようにコマンドを与える。 ただし,カレントディレクトリに,kskdump.exeおよび16進ダンプを行ないたいファイル があること >kskdump 16進ダンプを行ないたいファイル名 出力はコンソール画面上 */ char *title="kskdump copyright(C) T.KOSAKA"; #include #include void main(int argc, char *argv[]) { FILE *fp; unsigned char readBuffer[16]; /*読み込みバッファ*/ int nBytes=-1; /*読み込み制限*/ int number; /*実際に読み込まれたバイト数*/ int row; /*表示の時の行数*/ int i; /*表示の時の桁位置ポインタ*/ int dummy; int count=0; puts(title); if (argc<2) { fprintf(stderr,"** error ** no FileName !! \n"); fprintf(stderr,"#usage\n"); fprintf(stderr," >kskdump FilenameToDump [NumberOfBytes]\n"); fprintf(stderr,"#examples\n"); fprintf(stderr," >kskdump hello.c\n"); fprintf(stderr," >kskdump hello.c 100\n"); fprintf(stderr,"Press to terminate\n"); getchar(); exit(1); } fp=fopen(argv[1],"rb"); if (fp==NULL) { fprintf(stderr,"** error ** can't open the file <%s>\n",argv[1]); fprintf(stderr,"Press to terminate\n"); getchar(); exit(1); } if (argc==3) { if (sscanf(argv[2],"%d",&dummy)==1) nBytes=dummy; } row=0; printf("%s\n",argv[1]); printf(" +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +a +b +c +d +e +f"); printf(" 0123456789abcdef\n"); while ((count to terminate\n"); getchar(); }