Книга: UNIX — универсальная среда программирования

3.8.60 vis3.c

3.8.60 vis3.c
/* vis: make funny characters visible (version 3) */
#include <stdio.h>
#include <ctype.h>
int strip = 0; /* 1 => discard special characters */
main(argc, argv)
 int argc;
 char *argv[];
{
 int i;
 FILE *fp;
 while (argc > 1 && argv[1][0] == '-') {
  switch (argv[1][1]) {
  case 's': /* -s: strip funny chars */
   strip = 1;
   break;
  default:
   fprintf(stderr, "%s: unknown arg %sn",
    argv[0], argv[1]);
   exit(1);
  }
  argc--;
  argv++;
 }
 if (argc == 1)
  vis(stdin);
 for (i = 1; i < argc; i++)
  if ((fp=fopen(argv[i], "r")) == NULL) {
   fprintf(stderr, "%s: can't open %sn",
    argv[0], argv[i]);
   exit(1);
  } else {
   vis(fp);
   fclose(fp);
  }
 exit(0);
}
vis(fp) /* make chars visible in FILE *fp */
 FILE *fp;
{
 int c;
 while ((c = getc(fp)) != EOF)
  if (isascii(c) &&
   (isprint(c) || c=='n' || c=='t' || c==' '))
   putchar(c);
  else if (!strip)
   printf("%03o", с);
}

Оглавление книги


Генерация: 0.117. Запросов К БД/Cache: 2 / 0
поделиться
Вверх Вниз