Главная » Программирование для UNIX

Каким должно быть имя файла?

Добавлено Дата: 7 October, 2012 категория: Программирование для UNIX

До сих пор мы использовали имена файлов, не обсуждая, какими они вообще  могут  быть, так что теперь пришло время привести несколько правил. Во-первых, длина имени файла  ограничена 14  символами.1

Во-вторых, хотя практически все символы разрешены в именах фай лов, здравый смысл подсказывает, что разумнее придерживаться отображаемых символов и по возможности избегать символов, которые мо-

Читать »

Команда trap: перехват прерываний

Добавлено Дата: 6 October, 2012 категория: Программирование для UNIX

Если  нажать клавишу Del или  повесить телефонную трубку во время выполнения команды watchwho, в каталоге /tmp останутся один или  два временных файла. Перед  выходом watchwho должна удалять свои  временные файлы. Необходимо иметь возможность обнаруживать подобные ситуации и способ восстановления нормального хода событий.

Читать »

Сокращения в именах файлов UNIX

Добавлено Дата: 2 October, 2012 категория: Программирование для UNIX

Начнем  с  шаблона  имени  файла.  Предположим,  требуется  ввести большой  документ, например книгу. Логически книга  разделена на небольшие фрагменты: главы и, может быть, разделы. Физически ее также надо разделить, ведь  большие файлы неудобно редактировать.

Читать »

Поэкранный вывод: команда p

Добавлено Дата: 2 October, 2012 категория: Программирование для UNIX

До сих пор для исследования файлов применялась команда cat. Но если файл достаточно длинный, а соединение с системой высокоскоростное, то сat выводит данные слишком быстро  – так, что даже хорошая реакция (быстрое нажатие ctl-s  и ctl-q) не помогает прочитать его.

Читать »

Снова о перенаправлении ввода−вывода UNIX

Добавлено Дата: 2 October, 2012 категория: Программирование для UNIX

Стандартный вывод  ошибок организован так, чтобы  сообщения о них  всегда  появлялись на терминале:

$ diff file1  fiel2  >diff.out

diff: fiel2:  No  such  file  or  directory

$

И в самом  деле желательно, чтобы сообщения об ошибках обрабатывались  именно так, ведь вряд ли можно назвать удачным способ, при котором сообщения исчезали бы в файле diff.out, оставляя пользователя в полной уверенности, что команда отработала правильно.

Читать »

Пример: pick

Добавлено Дата: 2 October, 2012 категория: Программирование для UNIX

Версия pick, предложенная в главе 5, была  явным расширением возможностей оболочки. Программа, которая сейчас будет написана на Си, будет несколько отличаться от версии главы 5. Если аргументы для pick указаны, они обрабатываются так же, как и раньше, а вот если указан только один аргумент «–», то команда обрабатывает стандартный ввод.

Читать »

Иерархия каталогов UNIX

Добавлено Дата: 30 September, 2012 категория: Программирование для UNIX

В первой главе неформальное рассмотрение иерархии файловой систе мы  начиналось с каталога /usr/you. Теперь рассмотрим ее более методично, с самого начала, от ее корня.

Корневым каталогом является /:

$ ls / bin boot dev

etc  lib tmp unix usr

Читать »

Общение с другими пользователями UNIX

Добавлено Дата: 28 September, 2012 категория: Программирование для UNIX

Если в вашей UNIX-системе работают несколько пользователей, то однажды, как гром  среди ясного неба, на вашем экране появится что-то вроде

Message from  mary tty7…  Сообщение от mary

в сопровождении замечательного звукового сигнала. Мэри хочет написать  вам  что-то, но пока  вы не выполните определенные действия, не сможете ответить ей тем же. Чтобы ответить, введите

Читать »

Метасимволы UNIX

Добавлено Дата: 27 September, 2012 категория: Программирование для UNIX

Оболочка распознает и ряд  других символов как специальные; чаще  всего встречается звездочка *, сообщающая оболочке, что следует просмотреть каталог в поиске файлов с именами, в которых на месте * стоит любая символьная строка. Например,

$ echo *

Читать »

Создание новых команд

Добавлено Дата: 26 September, 2012 категория: Программирование для UNIX

Настало время обратиться к теме, заявленной в главе 1, и поговорить о том, как из старых команд создавать новые.

Если   какую-то  последовательность команд  приходится  выполнять достаточно часто, то было бы удобно превратить ее в «новую» команду, имеющую собственное имя, так  чтобы ее можно было  использовать в дальнейшем как обычную команду. Чтобы быть  конкретными, предположим, что вам часто  приходится подсчитывать количество пользователей с помощью конвейера

Читать »

Команда zap: уничтожение процесса по имени

Добавлено Дата: 25 September, 2012 категория: Программирование для UNIX

Команда kill уничтожает только процессы, для которых указан иден тификатор. Поэтому  когда  требуется уничтожить конкретный фоновый  процесс, обычно  приходится сначала запустить ps, чтобы  опреде лить  идентификатор процесса, а потом ввести его без ошибок как аргумент для kill. Но глупо  иметь одну программу, выводящую число, которое  сразу  же  приходится  вручную вводить в  другую  программу. Почему бы не написать программу, скажем, zap, чтобы  автоматизировать эту работу?

Читать »

Вход в систему UNIX

Добавлено Дата: 25 September, 2012 категория: Программирование для UNIX

У пользователя должны быть  имя  и пароль, которые можно получить у системного администратора.  Система UNIX  поддерживает работу  с разными терминалами, но  она  строго  ориентирована на  устройства, имеющие нижний регистр. Регистр имеет  большое значение! Так  что если терминал работает только в верхнем регистре (как некоторые видео и  портативные терминалы), жизнь  пользователя превратится в такую пытку, что ему придется поискать другой терминал.

Читать »

Исходный код HOC

Добавлено Дата: 24 September, 2012 категория: Программирование для UNIX

Здесь  во всей своей полноте представлен листинг hoc6.

*****                hoc.y      ****************************************************

%{

#include "hoc.h"

#define              code2(c1,c2)             code(c1);  code(c2)

Читать »

Настройка окружения UNIX

Добавлено Дата: 24 September, 2012 категория: Программирование для UNIX

Одна из приятных особенностей системы UNIX заключается в том, что существует несколько способов  настраивать среду, приспосабливая ее к  своим  вкусам или  к соглашениям  локального  окружения.  Например,  ранее упоминалась проблема разных стандартов для символа забоя и символа удаления строки; по умолчанию это обычно  # и @. Каждый раз, когда это необходимо, можно заменить их

Читать »

Макропакет ms

Добавлено Дата: 24 September, 2012 категория: Программирование для UNIX

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

Читать »