1. pid_t getpid(void) – возвращает PID
2. pid_t getppid(void) – возвращает родителей PID-процесса.
Следующий важный элемент для операционных систем - сигналы, которые предоставляют возможность запускать новые процессы или заменять процесс другим процессом. Сигналы - это сообщения, которые посылаются операционной системой в текущую программу для каких-либо действий. Некоторые сигналы вызываются в результате ошибки в программе, другие вызываются по требованию пользователя.
В таблице автор приводит список чаще всего подаваемых Unix сигналов.
Имя | Значение | Функция |
SIGHUP | 1 | Выход из системы |
SIGINT | 2 | Прерывание пользователя (клавиши Ctrl+C) |
SIGQUIT | 3 | Запрос пользователя на окончание (клавиша CTRL + \) |
SIGFPE | 8 | Ошибка с плавающей запятой |
SIGKILL | 9 | Принудительное завершение процесса |
Существует такое понятие в программировании как стиль программирования. Для различных языков программирования он разный. Автор пытается дать рекомендации для программирования в C. Из многочисленных советов автора можно выделить следующие, самые общие:
- Используйте *define для символьных констант.
- Используйте исключительно прописные буквы для констант и смешанную форму записи или символ подчеркивания для переменных и имен функций.
- Используйте функции, чтобы Ваши программы были короткими, ясными и соблюдался принцип модульности. Каждый шаг необходимо комментировать.
- Язык C предусматривает только минимальную проверку ошибок в программе. Это значительно ускоряет работу программы и допускает некоторые вольности в программировании. Но, тем не менее, программисту необходимо проверять некоторые значения в программе с помощью различных структур.
- При написании выражений, особенно условий, используйте скобки, чтобы указать последовательность и приоритет оценки.
- Выравнивайте команды таким образом, что легко определялась структура программы, состоящая из отдельных блоков.
- Используйте массивы с указателями из строк символов вместо двумерных массивов, если строки символов имеют различную длину.
- По возможности используйте динамические структуры данных
9.2 Ловушки в C
В заключении профессор предостерегает нас от наиболее часто встречающихся ошибок программирования в C:
§ Чтобы избежать ошибок memory fault(недостаток памяти) необходимо в программе проверять границы получаемых строковых величин.
§ Одна из частых ошибок – постановка точки с запятой в конце команды. Компилятор C замечает это только в следующей строке и указывает затем на эту ошибку.
§ При написании условной структуры часто не ясно, к какому IF принадлежит ELSE. Например,
if (i > j)
if (k < 100)
tuwas();
else
tuwasanderes();
При этом получается, что ELSE принадлежит первому IF. На самом деле она принадлежит всегда ближайшему IF.
§ Если объявляется переменная double d=3/4, то в результате получается 0, так как 3 и 4 - целые числа. Для того, чтобы получить результат необходимо записать 3.0 и 4.0
§ NULL определяется только #define NULL. Указатели не могут быть никакими целыми значениями. Указатель должен быть инициализирован допустимым адресом памяти.
Заключение
Тема, освещенная автором в этой книге, является одной из самых актуальных тем курса информатики. Алгоритмизация, рассмотренная в первой главе книги, является основой построения науки «информатика», а программирование, изложенное в последующих главах, является основным способом реализации алгоритмических структур с помощью машинных кодов.
Язык C тоже был выбран автором не случайно. Плате поставил целью этой книги научить искусству программирования и указать на ошибки в составлении программ. Язык C как нельзя лучше подходит для этих целей, так как его используют профессиональные программисты всего мира и он достаточно демократичен в плане написания различных структур. Правда, в связи с этим постоянно возникают некоторые трудности в написании кода, которые необходимо вовремя устранить. Автор помогает в этом достаточно подробно разобраться.
Первую главу автор начинает с понятия информации как основной структуры науки информатика, без которой невозможно составление алгоритмов. Также рассматриваются общие вопросы устройства компьютера, основных механизмов его функционирования для понимания сущности протекаемых программных процессов на машинном уровне. Далее профессор достаточно подробно и понятно вводит понятие алгоритма: рассказывает, как и где используются алгоритмы, дает определение, подробно описывает свойства.
На следующем этапе автор подходит к понятию языка и системы программирования, дается достаточно подробный обзор языков программирования и виды систем программирования.
Во второй части этой главы основное внимание Плате уделил формам представления алгоритмов и записи основных алгоритмических структур в них. Кратко разбираются графические формы представления алгоритмов – блок-схемы и структограммы. Далее сразу автор пытается использовать структуры языка C, что достаточно сложно для начинающих и непонятно до объяснений синтаксиса языка. Поэтому, в первую очередь, необходимо использовать промежуточные языки (например, алгоритмический язык).
Во второй части работы рассматривается процесс программирования на языке программирования С. Для этого сначала вводится синтаксис основных команд С. Затем объясняется их назначение и особенности работы. Завершается этот процесс достаточно многочисленными и разнообразными примерами программ.
Стоит обратить внимание на то, что автор периодически отвлекается от процесса программирования и рассматривает общие информатические вопросы каким-то образом связанные с темой (системы счисления, процессы в операционной системе). Это дает возможность утверждать, что данный труд является не только обучающим пособием по программированию, но и по информатике в целом.
Несомненно, данная книга представляет большой интерес как для начинающих, так и для опытных программистов, а также для людей занимающихся информатическими проблемами. Многие советы и рекомендации по организации процесса создания ПО, данные автором, я буду использовать в своем диссертационном исследовании.
... , которая определяет последовательность действий над некоторыми объектами и после конечного числа шагов приводит к по лучению требуемого результата. ЭВМ — исполнитель алгоритмов. Обсуждение методических вопросов изучения темы «Алгоритмы работы с величинами» буде проводить в программистском аспекте. Составление любой программы для ЭВМ начинается с построения алгоритма. Как известно, всякий ...
... профессором Н. Виртом, язык назван в честь французского математика и по замыслу автора предназначался для обучения программированию. Однако язык получился на столько удачным, что стал одним из основных инструментов прикладных и системных программистов при решении задач вычислительного и информационно-логического характера. В 1979 году был подготовлен проект описания языка – Британский стандарт ...
... для диалогового стиля разработки программ, когда отдельные части программы можно написать, проверить и выполнить в ходе создания программы, не отключая интерпретатора. По набору входных языков различают системы программирования одно- и многоязыковые. Отличительная черта многоязыковых систем состоит в том, что отдельные части программы можно составлять на разных языках и помощью специальных ...
... процедуры и функция (программирование) функции макросы * глобальная переменная глобальные переменные * класс программирование классы * Обобщённое программирование шаблоны Обычно стандартная библиотека содержит основные алгоритмы и структуры данных, необходимые для: * работы с динамически распределяемая память динамической памятью * файловыми операциями ввода-вывода * операциями ввода- ...
0 комментариев