/* wc line and word count */ #include main(argc, argv) char **argv; { int i, token; register FILE *fp; long linect, wordct, charct; long tlinect=0, twordct=0, tcharct=0; char *wd; register int c; wd = "lwc"; if(argc > 1 && *argv[1] == '-') { wd = ++argv[1]; argc--; argv++; } i = 1; fp = stdin; do { if(argc>1 && (fp=fopen(argv[i], "r")) == NULL) { fprintf(stderr, "wc: can't open %s\n", argv[i]); continue; } linect = 0; wordct = 0; charct = 0; token = 0; for(;;) { c = getc(fp); if (c == EOF) break; charct++; if(' '1) { printf(" %s\n", argv[i]); } else printf("\n"); fclose(fp); tlinect += linect; twordct += wordct; tcharct += charct; } while(++i 2) { wcp(wd, tcharct, twordct, tlinect); printf(" total\n"); } exit(0); } wcp(wd, charct, wordct, linect) register char *wd; long charct; long wordct; long linect; { while (*wd) switch (*wd++) { case 'l': printf("%7ld", linect); break; case 'w': printf("%7ld ", wordct); break; case 'c': printf("%7ld", charct); break; } }