UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
*pto1 = *pfrom1; *pcmd = *s++; a2i(*pfrom2); if (*s == ',') { s++; a2i(*pto2); } else *pto2 = *pfrom2;}Макрокоманда
a2iФункции
nskipncopynskip(fin, n) /* skip n lines of file fin */ FILE *fin;{ char buf[BUFSIZ]; while (n-- > 0) fgets(buf, sizeof buf, fin);}ncopy(fin, n, fout) /* copy n lines from fin to fout */ FILE *fin, *fout;{ char buf[BUFSIZ]; while (n-- > 0) { if (fgets(buf, sizeof buf, fin) == NULL) return; fputs(buf, fout); }}Программа
idiff/tmpЕсли критически подойти к
zapidiffДобавьте команду q к
idiff'<''>'Модифицируйте
idiffidiffdiff-b-hidiff$ idiff -е другой редактор file1 file2Как взаимодействуют эти две модификации?
Измените
idiffpopenpclosediffЕсли один из аргументов
diffidiff6.9 Доступ к среде
Из Си-программы легко "добраться" до переменных в среде
shellp$ p -36...Вы могли бы всегда вставлять файл
shellbin$ cat /usr/you/bin/pexec /usr/bin/p -36 $*$Третье решение модифицировать
pPAGESIZE.profilePAGESIZE=36export PAGESIZEФункция
getenv("var")NULLgetenvgetenv/* p: print input in chunks (version 3) */...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++;}Флаги обрабатываются вслед за переменной среды, так что любой явно заданный размер страницы в конце концов заменит неявно заданный.
Модифицируйте
idiffPAGESIZEСтандартная библиотека ввода-вывода была разработана Д. Ритчи вслед за переносимой библиотекой ввода вывода М. Леска. Оба пакета имели целью предоставить пользователю стандартные средства, чтобы можно было переносить программы без изменений с UNIX в другие системы.
Наша версия
padbsdblintПрограмма
idiffdiffdiff
