UNIX — универсальная среда программирования
UNIX — универсальная среда программирования читать книгу онлайн
В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
shell.
Для программистов-пользователей операционной системы UNIX.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Таблица 6.4: Полезные стандартные функции ввода-вывода
Модифицируйте
zapzapgetpid(2)Постройте
fgrep(1)strindexfgrep6.8 Диалоговая программа сравнения файлов:
idiffПоддерживать две чем-то отличающиеся версии файла, каждая из которых содержит часть нужного вам файла, довольно распространенная проблема. Зачастую она возникает в тех случаях, когда изменения вносятся независимо двумя разными людьми. Программа
diffВ этом разделе мы напишем программу
idiffdiffdiffidiffidiff.out<b>file1: file2:</b>This is This isa test not a testof ofyour ourskill ability.and comprehension.diff$ diff file1 file22c2< a test---> not a test4,6c4,5< your< skill< and comprehension.---> our> ability.$Диалог с
idiff$ idiff file1 file22c2< a test---> not a test? > 4,6с4,5 < your< skill< and comprehension.---> our> ability.? < idiff output in file idiff.out$ cat idiff.out This isnot a test ofyour skilland comprehension.$Если вместо
<>еidiffedеyourskilland comprehension.---ourability.Все, что пишется редактором обратно в файл, идет в окончательный выходной поток.
И, наконец, любая команда может быть выполнена внутри
idiffТехнически самая трудная часть работы
diffidiffdiffidiffdiff/* idiff: interactive diff */#include <stdio.h>#include <ctype.h>char *progname;#define HUGE 10000 /* large number of lines */main(argc, argv) int argc; char *argv[];{ FILE *fin, *fout, *f1, *f2, *efopen(); char buf[BUFSIZ], *mktemp(); char *diffout = "idiff.XXXXXX"; progname = argv[0]; if (argc != 3) { fprintf(stderr, "Usage: idiff file1 file2n"); exit(1); } f1 = efopen(argv[1], "r"); f2 = efopen(argv[2], "r");
