/* input level monitor program ver 0.1 */ #include #include #include /* Initialize routine Set max count value Set system timer */ void main(int argc, char *argv[]) { static char usage[] = "\tusage: levelck infile times/30\n\0"; /* static char level[] = "01"; */ static char sp = ','; /* static char cr = '\r'; */ static char lf = '\n'; FILE *fp; int times, i, j, ic; char c; if(argc != 3) { fprintf(stderr, "%s", usage); return; } times = 0; for (i=0;argv[2][i]!='\0';i++) { if(!isdigit(argv[2][i])) { fprintf(stderr, "%s", usage); return; } times = times * 10 + argv[2][i] - '0'; } times = times * 30; fprintf(stderr, "times=%d\n", times); /* ここから printf("%d, ", argc); for (i=0; i < argc; i++) { printf("%s, ", &argv[i][0]); } printf("\n"); ここまでコマンドがアーギュメントを取るときの動作チェック */ /* Open input file */ if (NULL == (fp = fopen(&argv[1][0], "r+b"))) { fprintf(stderr, "File open error. Program terminated.\n"); return; } /* Main routine start */ for (i = 0; i 255) break; c = '0'; for (j = 128; j > 1; j = j / 2) { if (ic >= j) { ic = ic - j; c++; } } c = c + ic; /* Write data */ putchar(c); if ((int)fmod(i, 30) != 29) putchar(sp); else /* { putchar(cr); */ putchar(lf); /* } */ /* Main routine end */ } /* Close input file */ fcloseall(); }