Книга: UNIX — универсальная среда программирования
3.8.40 p3.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] = '';
fputs(buf, stdout);
fflush(stdout);
ttyin();
lines = 0;
}
}
#include "ttyin2.c"
#include "efopen.c"
- 3.8.1 addup1
- 3.8.2. addup2
- 3.8.3 backup
- 3.8.4 backwards
- 3.8.5 badpick.c
- 3.8.6 bundle
- 3.8.7 cal
- 3.8.8 calendar1
- 3.8.9 calendar2
- 3.8.10 calendar3
- 3.8.11 cat0.c
- 3.8.12 checkmail.c
- 3.8.13 checkmail.sh
- 3.8.14 cp.c
- 3.8.15 doctype
- 3.8.16 double
- 3.8.17 efopen.c
- 3.8.18 error.c
- 3.8.19 field1
- 3.8.20 field2
- 3.8.21 fold
- 3.8.22 frequent
- 3.8.23 frequent2
- 3.8.24 get
- 3.8.25 get.с
- 3.8.26 getname
- 3.8.27 idiff.c
- 3.8.28 makefile
- 3.8.29 newer
- 3.8.30 news1
- 3.8.31 news2
- 3.8.32 news3
- 3.8.33 nohup
- 3.8.34 older
- 3.8.35 overwrite1
- 3.8.36 overwrite2
- 3.8.37 overwrite3
- 3.8.38 p1.c
- 3.8.39 p2.c
- 3.8.40 p3.c
- 3.8.41 p4.c
- 3.8.42 pick1
- 3.8.43 pick.c
- 3.8.44 prpages
- 3.8.45 put
- 3.8.46 readslow.c
- 3.8.47 replace
- 3.8.48 signaltest.c
- 3.8.49 spname.c
- 3.8.50 strindex.c
- 3.8.51 sv.c
- 3.8.52 system1.c
- 3.8.53 system.c
- 3.8.54 timeout.c
- 3.8.55 toolong
- 3.8.56 ttyin1.c
- 3.8.57 ttyin2.c
- 3.5.58 vis1.c
- 3.5.59 vis2.c
- 3.8.60 vis3.c
- 3.8.61 waitfile.c
- 3.8.62 watchfor
- 3.8.63 watchwho
- 3.8.64 which1
- 3.8.65 which1.H
- 3.8.66 which2
- 3.8.67 wordfreq
- 3.8.68 zap1
- 3.8.69 zap2
- 3.8.70 zap.c
- Chapter 5. Kernel Initialization
- Document
- ГЛАВА 3 Внутренняя структура .NET Compact Framework
- 6.3 Native Application Builder (NAB)
- Практическая работа 53. Запуск Access. Работа с объектами базы данных
- Кто такая Елена Ивашенцева?
- 11.2. Цели процесса
- Рис. 214. Имена почтовых серверов.
- Джордж Буль Отец булевой алгебры
- Removable Storage Media
- Работа пользователей с виртуальной машиной
- 6.5. Общие команды меню Windows-программ. Буфер обмена Windows