Этапы программирования на С:
1) исх. модуль производят предпроцессинг
2)компиляция в .асс
3)это собирается в исходный модуль
4)компонуется исполняемый модуль в процессе которого подсоединяются коды библиотек.
Библиотеки по умолчанию находятся в /usr/include, при желании можно указать конкретный каталог в директиве #include
при сборке флагом -l можно указать доп. библиотеки.
Статические библиотеки создаются с помощью ar.
Динамические библиотеки создаются компановщиком с помощью ключа shared, для использования получившейся библиотеки ее необходимо скопировать в usr/local/lib после чего в etc/id.so.conf нужно определить нахождение библиотек, после изменения состава библиотек необходимо запустить утилиту ldconfig
Утилита make
Отслеживает изменения в файлах проекта и компанует только те что изменились или зависят от изменений, структура проетка описывается в файле makefile
Синтаксис
<список целевых файлов>:<список зависимых файлов>;[команда]
Анализируются зависимости и при модификации файлов происходит выполнение команд
В этом файле допускаются макросы
<имя>=<значение>
Указываются метки например make install выполнит с метки install
Сценарий ./configure делает диагностику, докачивает пакеты и формирует make файл
setpgrp() - создание новой группы
setsid() - создание нового сеанса, для создания фонового процессора.
Демон создает .pid через который можно узнать ид процесса, т.е. мы должны всегда создавать его для фоновых процессов.