Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции 1-8 / ОС_06.doc
Скачиваний:
102
Добавлен:
04.04.2013
Размер:
185.34 Кб
Скачать

3.6.2. Редактор joe

Более удобным для работы является экранный редактор joe. В отличие от редактора vi он прост в применении и позволяет редактировать текст по всему полю экрана с помощью функциональных и управляющих клавиш.

Основные функции редактирования текста поддержаны "горячими" клавишами, совпадающими с аналогичными клавишами известного редактора Word Perfect.

Копия экрана редактора joe с размещенной в верхней части справочной информацией по командам редактора, приведена на рис. 2.4.

Все функции редактора разделены на следующие группы:

CURSOR управление курсором

GO TO переходы по тексту

BLOCK работа с блоками символов

SEARCH поиск в файле

DELETE операции удаления

FILE работа с файлами

MISC прочие операции

EXIT выход из редактора

Примечания. 1) Запись ^B означает одновременное нажатие клавиш Ctrl и B.

2) Запись ^KH означает одновременное нажатие клавиш Ctrl и K, а в след за этим - нажатие клавиши H. 3) Вызов справочной таблицы и её отключение производится по команде ^KH.

Редактор прост в работе и основные действия по редактированию текста не требуют пояснения. Остановимся лишь на командах работы с блоками символов.

Для выделения блока необходимо:

  • установить курсор на начало выделенного блока;

  • выполнить команду ^KB (отметить начало блока);

  • установить курсор на конец блока;

  • выполнить команду ^KK (отметить конец блока).

Теперь можно с выделенным блоком выполнять следующие действия:

  • копировать - ^KC

  • перемещать - ^KM

  • записывать в файл - ^KW.

Вызов редактора joe осуществляется по команде:

%joe file

где file - имя редактируемого файла.

Выход их редактора с сохранением результатов редактирования - ^KX.

3.7. Создание программ на языке Си На рис. 3.2. Приведена схема подготовки исполняемой программы в Unix.

Рис. 3.2.. Схема подготовки исполняемой программы в Unix:

*.c исходный модуль на языке Си

*.a модуль на ассемблере

*.o объектный модуль

a.out стандартное имя исполняемого файла

cc компилятор языка Си

as компилятор языка ассемблера

ld компоновщик (редактор связей)

Компилятор языка Си позволяет за один вызов выполнить всю цепочку преобразования исходного модуля в исполняемую программу. Исходный модуль транслируется в модуль на языке ассемблера, затем создается объектный модуль и компоновщик производит исполняемый файл со стандартным именем a.out. Для подключения к исполняемой программе функций ввода-вывода, математических функций и т.п., компоновщик использует различные библиотеки объектных модулей.

Выбор фиксированного имени исполняемого модуля (a.out) объясняется тем, что в режиме отладки программ нет необходимости хранить промежуточные версии исполняемых программ и вполне можно называть их одним именем.

Формат команды cc, вызывающей компилятор языка Си, предусматривает задание следующих параметров (в форматах команд операционных систем принято помещать необязательные элементы в квадратные скобки [ ]):

cc [-ключи] исходные_модули [ключи_компоновщика]

[объектные_модули] [библиотеки]

где

ключи - однобуквенные параметры, задающие режимы работы компилятора. перед каждым ключом должен стоять знак минус ('-'). После некоторых ключей могут указываться дополнительные параметры. Приведем некоторые (наиболее часто употребляемые) ключи команды cc:

-c - транслировать исходный модуль в объектный;

-p - провести только препроцессорную обработку исходного модуля;

-s - транслировать исходный модуль в модуль на языке ассемблера;

-o имя_исполняемой_программы - при необхрдимости транслировать и задать произвольное (отличное от стандартного "a.out") имя для исполняемой программы;

исходные_модули - полные имена (с расширением "c") одного или нескольких исходных модулей;

объектные_модули - полные имена (с расширением "o") тех модудей которые будут использованы при построении исполняемой программы;

ключи компоновщика - задают режимы работы компоновщика (для нас представляет интерес ключ -l, определяющий имя библиотеки объектных модулей):

-lбиблиотека_объектных_модулей

Если программа состоит их одного исходного модуля, то для построения исполняемого модуля достаточно выполнить команду

%cc prog.c

Примечание. Компилятор cc предполагает, что исходный модуль на языке Си имеет обязательное расширение .c.

Исходный модуль prog.c будет последовательно преобразован в модуль на языке ассемблера, объектный модуль, исполняемый модуль. Исполняемый модуль получит стандартное имя a.out. При повторном вызове компилятора языка Си командой cc и указания в качестве параметра команды имени другого исходного модуля вновь полученный исполняемый модуль также будет иметь имя a.out, но будет соответствовать другому исходному (только что обработанному) модулю.

Для того чтобы определить произвольное имя исполняемого модуля, необходимо в команде вызова компилятора указать ключ -o и сразу за ним через пробел задать имя исполняемого модуля:

%cc -o begin prog.c

построение исполняемого модуля можно провести в два этапа с промежуточным получением объектного модуля:

%cc -c prog.c

%cc -o begin prog.o

В первой строке применен ключ -с, в результате чего процесс обработки исходного модуля прервется, когда будет получен объектный модуль (prog.o).

Во второй строке определено имя исполняемого модуля begin и в качестве параметра команды cc указано имя объектного модуля (prog.o), полученного на предыдущем этапе.

Соседние файлы в папке Лекции 1-8