Читаем Linux: Полное руководство полностью

ansi2knr oldfile.c newfile.c

21.3.2. as

Программа as — это GNU-версия ассемблера, предназначенная для создания объектных файлов из программ, написанных на языке ассемблера. Формат вызова:

as [ключи] файл1 [файл2 ... файлN]


Ключи программы as Таблица 21.2

КлючНазначение
Вывод листинга
-adHe выводить отладочные сообщения
-adВключение в листинг текста программы, написанной на языке высокого уровни, если компиляций проводилась с ключом -g
-alВывод листинга на ассемблере
-anНе обрабатывать форм
-asВывод списка символов программы
-aфайлВывести листинг в указанный файл
-fБыстрый режим. Директивы препроцессора не обрабатываются
-iпутьДобавить указанный путь к Include-пути
-MRIОбеспечить MRI-совместимость
-о файлСоздание объектного файла с указанным именем
-RПоместить сегмент данных в сегмент кода
-vВывод версии
-WНе выводить предупреждения

21.3.3. bison

Программа bison — это грамматический разборщик (парсер): она создает C-программу, предназначенную для разбора определенной грамматики. Данная программа вам не понадобится до тех пор, пока вы не захотите написать собственный компилятор. Ключи программы представлены в таблице 21.3. Формат вызова:

bison [ключи] файл


Ключи программы bison Таблица 21.3

КлючНазначение
-b префиксИспользовать указанный префикс для имени входящего файла
-dСоздать заголовочный файл, содержащий информацию о типах грамматических образцов (токенов), которые определены в вашей грамматике
-IНе вставлять код в существующие файлы
-о файлУстановить файл результата
-tВключить отладочную информацию
-vЗаписать созданную программу в файл у.out put

21.3.4. flex

flex [параметры] файл

Это еще одна программа, которая пишет код за нас. Flex может написать программу на языке С, которая будет искать заданные образны текста в текстовых файлах и выполнять определенные действия, заданные программистом. Если вам нужна эта программа, тогда самое время прочитать страницы руководства man flex.

21.3.5. gprof

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

21.3.6. strip

Утилита strip удаляет таблицу символов из объектного файла.

21.4. Пример программы на С

В п. 9.2.3 я сказал о состояниях процесса и перечислил среди них состояние «зомби». Зомби — это процесс, который уже завершился, но его родитель еще не получил сигнала о его завершении и не удалил его структуру из таблицы процессов. Такое может произойти, когда процесс-родитель почему-либо не готов к завершению потомка. Сейчас мы искусственно создадим такого зомби. Процесс-родитель породит потомка и уснет на 10 секунд. Потомок завершится через 2 секунды, а в течение 8 секунд он будет находиться в состоянии зомби. Напоминаю, что состояние процесса можно увидеть по команде top.

Листинг 21.3. Файл zombie.с

#include

#include

#include

#include

#include


int main() {

 int pid;

 int status, died;


 pid=fork();

 switch(pid) {

 case -1:

  printf("ошибка fork\n");

  exit(-1);

 case 0:

  printf(" Я потомок процесса %d\n", getppid());

  printf(" Мой PID %d\n", getpid());

  // Ждем 2 секунды и завершаемся

  sleep(2);

  exit(0);

 default:

  printf("Я родитель.\n");

  printf("Мой PID %d\n" , getpid());

  // Ждем завершения дочернего процесса

  // через 10 секунд, а потом убиваем его

  sleep(10);

  if (pid & 1)

   kill(pid,SIGKILL);

Перейти на страницу:

Все книги серии Полное руководство

Похожие книги

Полное руководство по Microsoft Windows XP
Полное руководство по Microsoft Windows XP

В книге известного американского автора описывается среда ОС Windows XP и принципы ее функционирования, приведен сравнительный анализ Windows XP с предшествующими версиями операционной системы Windows. Рассматриваются вопросы применения и модификации нового интерфейса с целью получения прямого доступа ко всем функциям Windows XP обсуждаются варианты подключения к компьютерным сетям. Несколько разделов посвящены работе с реестром и конфигурационными файлами, мультимедийным функциям и разнообразным системным службам, а также методам решения проблем с программным обеспечением и оборудованием. Особое внимание уделено обеспечению безопасности операционной системы.Издание адресовано пользователям и сетевым администраторам, желающим активно применять возможности операционной системы Windows XP (в том числе и недокументированные).

Питер Нортон , Джон Поль Мюллер

ОС и Сети, интернет / ОС и Сети / Книги по IT
Linux
Linux

Книга посвящена операционной системе Linux. Приводятся подробные сведения о ее особенностях и возможностях, идеологии файловой системы, инсталляции и основных командах, вопросах компиляции ядра, настройках и сервисах. Большое внимание уделяется организации на базе Linux различных серверов и служб: электронной почты, WWW, FTP, INN, Proxy, NTP, а также проблемам администрирования сети, обеспечения безопасной работы и другим вопросам. Описаны способы настройки под Linux рабочих станций, в т. ч. и бездисковых, установки и эксплуатации на них графических сред типа X Window, а также конфигурирование модемных соединений, принтеров и сканеров, отладка взаимодействия с Linux-машинами такой «экзотической» периферии, как карманные компьютеры, мобильные телефоны, TV-тюнеры и т. п. Рассматриваемые в книге конфигурационные файлы и структура каталогов соответствуют дистрибутиву Red Hat Linux 7.x, тем не менее, при минимальной адаптации все упоминаемые в книге пакеты устанавливаются в любом дистрибутиве Linux.Для начинающих администраторов или пользователей Linux.

Алексей Александрович Стахнов

ОС и Сети, интернет