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

Здесь есть возможность читать онлайн «Брайан Керниган - UNIX — универсальная среда программирования» — ознакомительный отрывок электронной книги совершенно бесплатно, а после прочтения отрывка купить полную версию. В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 1992, ISBN: 1992, Издательство: Финансы и статистика, Жанр: ОС и Сети, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

UNIX — универсальная среда программирования: краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «UNIX — универсальная среда программирования»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

В книге американских авторов — разработчиков операционной системы UNIX — блестяще решена проблема автоматизации деятельности программиста, системной поддержки его творчества, выходящей за рамки языков программирования. Профессионалам открыт богатый "встроенный" арсенал системы UNIX. Многочисленными примерами иллюстрировано использование языка управления заданиями
.
Для программистов-пользователей операционной системы UNIX.

UNIX — универсальная среда программирования — читать онлайн ознакомительный отрывок

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «UNIX — универсальная среда программирования», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Если аргументы отсутствуют, zapпредоставляет каждую строку выходного потока psкак возможность для выбора. При наличии аргумента zapпредлагает только те выходные строки ps, которые ему соответствуют. Функция strindex(s1, s2)проверяет, соответствует ли аргумент какой-либо части строки выходного потока ps, используя strncmp(см. табл. 6.2). Функция strindexвозвращает позицию s2в s1или -1, если ее там нет.

strindex(s, t) /* return index of t in s, -1 if none */

char *s, *t;

{

int i, n;

n = strlen(t);

for (i = 0; s[i] != '\0'; i++)

if (strncmp(s+i, t, n) == 0)

return i;

return -1;

}

В табл. 6.4 представлены широко используемые функции из стандартной библиотеки ввода вывода.

fp=fopen(s, mode) Открыть файл s; значения mode "r", "w", "a"соответствуют чтению, записи и добавлению (при ошибке возвращается NULL)
c=gets(fp) Читать символ: getchar()это getc(stdin)
putc(c, fp) Записать символ: putchar(c)это putc(c, stdout)
ungetc(c, fp) Вернуть символ во входной файл fp; можно вернуть не более одного символа за раз
scanf(fmt, a1, ...) Читать символы из stdinв a1, ...в соответствии с fmt. Каждый a i должен быть указателем
fscanf(fp,...) Читать из файла fp
sscanf(s,...) Читать из строки s
printf(fmt, a1, ...) Форматировать a1, ... в соответствии с fmt; печатать в stdout
fprintf(fp, ...) Печатать ...в файл fp
sprintf(s, ...) Печатать ...в строку s
fqets(s, n, fp) Читать не более nсимволов в sиз fp(возвращается NULLпо концу файла)
fputs(s, fp) Печатать строку sв файл fp
fflush(fp) Занести буферизованные данные выходного потока в файл fp
fclose(fp) Закрыть файл fp
fp=popen(s, mode) Открыть программный канал для команды s(см. fopen)
pclose(fp) Закрыть программный канал fp
system(s) Запустить команду sи ждать ее окончания

Таблица 6.4: Полезные стандартные функции ввода-вывода

Упражнение 6.11

Модифицируйте zapтак, чтобы можно было применять любое число аргументов. В настоящем виде zapвысвечивает на экране строку, соответствующую выбранному варианту. Будет она делать это? Если нет, модифицируйте программу соответствующим образом. Подсказка: getpid(2).

Упражнение 6.12

Постройте fgrep(1)на основе strindex. Сравните время работы при сложных поисках, например 10 слов на документ. Почему fgrepвыполняется быстрее?

6.8 Диалоговая программа сравнения файлов: idiff

Поддерживать две чем-то отличающиеся версии файла, каждая из которых содержит часть нужного вам файла, довольно распространенная проблема. Зачастую она возникает в тех случаях, когда изменения вносятся независимо двумя разными людьми. Программа diffподскажет вам, чем различаются файлы, но вы не получите никакой помощи, если захотите выбрать какую-то информацию из одного файла, а какую-то из другого.

В этом разделе мы напишем программу idiff(диалоговая diff), которая предоставляет пользователю каждую порцию выходного потока diffи предлагает ему возможность выбора фрагментов "от и до" или их редактирования. Программа idiffпомещает выбранные фрагменты в соответствующем порядке в файл idiff.out. Допустим, даны такие два файла:

file1: file2:

This is This is

a test not a test

of of

your our

skill ability.

and comprehension.

diffвырабатывает следующее:

$ diff file1 file2

2c2

< a test

---

> not a test

4,6c4,5

< your

< skill

< and comprehension.

---

> our

> ability.

$

Диалог с idiffможет выглядеть так:

$ idiff file1 file2

2c2Первое различие

< a test

---

> not a test

? > Пользователь выбрал вторую версию

4,6с4,5 Второе различие

< your

< skill

< and comprehension.

---

> our

> ability.

? < Пользователь выбрал первую (<) версию

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «UNIX — универсальная среда программирования»

Представляем Вашему вниманию похожие книги на «UNIX — универсальная среда программирования» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «UNIX — универсальная среда программирования»

Обсуждение, отзывы о книге «UNIX — универсальная среда программирования» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x