UNIX — универсальная среда программирования
Шрифт:
if (argc > 1 && argv[1][0] == '-') {
pagesize = atoi(&argv[1][1]);
argc--;
argv++;
}
if (argc == 1)
print(stdin, pagesize);
for (i = 1; i < argc; i++) {
fp = efopen(argv[i], "r");
print(fp, pagesize);
fclose(fp);
}
exit(0);
}
print(fp, pagesize) /* print fp in pagesize chunks */
FILE *fp;
int pagesize;
{
static int lines = 0; /* number of lines so far */
char buf[BUFSIZ];
while (fgets(buf, sizeof buf, fp) != NULL)
if (++lines < pagesize)
fputs(buf, stdout);
else {
buf[strlen(buf)-1] = '\0';
fputs(buf, stdout);
fflush(stdout);
ttyin;
lines = 0;
}
}
#include "ttyin2.c"
#include "efopen.c"
3.8.40
p3.c
/* p: print input in chunks (version 3) */
#include <stdio.h>
#define PAGESIZE 22
char *progname; /* program name for error message */
main(argc, argv)
int argc;
char *argv[];
{
FILE *fp, *efopen;
int i, pagesize = PAGESIZE;
char *p, *getenv;
progname = argv[0];
if ((p=getenv("PAGESIZE")) != NULL)
pagesize = atoi(p);
if (argc > 1 && argv[1][0] == '-') {
pagesize = atoi(&argv[1][1]);
argc--;
argv++;
}
if (argc == 1)
print(stdin, pagesize);
else
for (i = 1; i < argc; i++) {
fp = efopen(argv[i], "r");
print(fp, pagesize);
fclose(fp);
}
exit(0);
}
print(fp, pagesize) /* print fp in pagesize chunks */
FILE *fp;
int pagesize;
{
static int lines = 0; /* number of lines so far */
char buf[BUFSIZ];
while (fgets(buf, sizeof buf, fp) != NULL)
if (++lines < pagesize)
fputs(buf, stdout);
else {
buf[strlen(buf)-1] = '\0';
fputs(buf, stdout);
fflush(stdout);
ttyin;
lines = 0;
}
}
#include "ttyin2.c"
#include "efopen.c"
3.8.41
p4.c
/* p: print input in chunks (version 4) */
#include <stdio.h>
#define PAGESIZE 22
char *progname; /* program name for error message */
main(argc, argv)
int argc;
char *argv[];
{
FILE *fp, *efopen;
int i, pagesize = PAGESIZE;
char *p, *getenv, buf[BUFSIZ];
progname = argv[0];
if ((p=getenv("PAGESIZE")) != NULL)
pagesize = atoi(p);
if (argc > 1 && argv[1][0] == '-') {
pagesize = atoi(&argv[1][1]);
argc--;
argv++;
}
if (argc == 1)
print(stdin, pagesize);
else
for (i = 1; i < argc; i++)
switch (spname(argv[i], buf)) {
case -1: /* no match possible */
fp = efopen(argv[i], "r");
break;
case 1: /* corrected */
fprintf (stderr, "\"%s\"? ", buf);
if (ttyin == 'n')
break;
argv[i] = buf;
Поделиться:
Популярные книги
Кодекс Крови. Книга III
3. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Отчий дом. Семейная хроника
Проза:
классическая проза
5.00
рейтинг книги
Скандальная свадьба
1. Такие разные свадьбы
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Путанабус. Трилогия
Фантастика:
боевая фантастика
6.93
рейтинг книги
Идеальный мир для Лекаря 25
25. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Кодекс Крови. Книга ХVI
16. РОС: Кодекс Крови
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Проданная невеста
Любовные романы:
любовно-фантастические романы
5.80
рейтинг книги
Потомок бога
1. Локки
Фантастика:
попаданцы
альтернативная история
аниме
сказочная фантастика
5.00
рейтинг книги
С Д. Том 16
16. Сердце дракона
Фантастика:
боевая фантастика
6.94
рейтинг книги
Переиграть войну! Пенталогия
Переиграть войну!
Фантастика:
героическая фантастика
альтернативная история
8.25
рейтинг книги
От Советского Информбюро - 1941-1945 (Сборник)
Документальная литература:
биографии и мемуары
5.00
рейтинг книги

Санек 3
3. Санек
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Прометей: повелитель стали
3. Прометей
Фантастика:
фэнтези
7.05
рейтинг книги
Отмороженный 14.0
14. Отмороженный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00