Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #51, ФЕВРАЛЬ 2005 г.

C в *nix – залог здоровья

Косякин Антон

Спецвыпуск: Хакер, номер #051, стр. 051-078-1


(deil@real.xakep.ru)

Основы программирования в *nix-системах

Программирование – это в первую очередь свобода. Обладая теми или иными программистскими навыками, ты получаешь свободу действий, которой так не хватает в жизни. Свобода же – это комфорт. А как можно пользоваться операционной системой, если это некомфортно? В общем, я хотел сказать, что без программирования никуда, особенно в *nix. Будем учиться.

Многим известно, что UNIX (*nix) - универсальная среда программирования. ОС, созданная программистами для программистов. Здесь используется множество всевозможных языков программирования (да-да, знаю: это множество даже не более чем счетно и очень даже конечно), один из которых ты можешь выбрать для решения поставленных перед тобой задач. Perl, Python, Java, Tcl/tk, UNIX Shell Script, C#, Pascal, BASIC, C/C++... Так сложилось (и надеюсь, так будет еще долго), что основным языком программирования, который используется в семействе *nix-систем, является C. Поэтому речь пойдет именно о нем.

Сразу хочу заметить - эта статья не о самой ОС. И не о C. А о программировании на этом языке под эту ОС. Основные навыки работы в *nix-системе, умение программировать на языке C, знание того, что такое компилятор :), умение пользоваться с man'ами (для этого конкретного случая наиболее интересными являются разделы 2 и 3, охватывающие системные вызовы и функции стандартных библиотек) – и можно приступать.

IDE

Для начала нужно определиться, где набивать исходные тексты своих будущих программ. Можно пользоваться либо одним из обыкновенных и многочисленных текстовых редакторов, либо остановить свой выбор на какой-нибудь из IDE, которых, правда, чуточку меньше :).

Из сред разработки под *nix могу предложить таких монстров, как, например, KDevelop, Anjuta. Это из Иксовых, под КДЕ и GNOME соответственно. Также можно попробовать что-нибудь консольное - Rhide или Motor. Если их нет в дистрибутиве, то положение исправит freshmeat.net с его возможностью поиска. Об упомянутых выше средах разработки могу сказать лишь то, что это самые обычные IDE со стандартным набором функций, в которых легко разобраться. В случае чего - поможет встроенная справка. Так что выбирай то, что больше нравится. Однако я придерживаюсь мнения, что самая удобная и полная IDE для ОС *nix - сама ОС *nix. Поэтому я уже давно пользуюсь обычным текстовым редактором, компилирую из командной строки, а при отладке использую gdb.

Собираем

Следующим в нашем списке стоит компилятор. В Linux, как в GNU-системе, выбор очевиден - это GCC. Можно, конечно, найти какую-нибудь альтернативу, например, icc - Intel C Compiler, но это вряд ли тебе нужно.

Набрал код своей программы и сохранил его в некотором файле - следующим этапом будет компиляция. В случае использования gcc для этого необходимо просто в командной строке набрать "# gcc program.c". На выходе получишь исполняемый файл a.out или увидишь список ошибок, которые препятствуют компиляции. Для изменения названия выходного файла используется параметр "-o": # gcc -o program program.c. В таком случае у нас вместо a.out появится файл Program или снова покажется список ошибок :).

Содержание  Вперед на стр. 051-078-2