Написание первой программы на Си под Linux

Вот и дошли руки написать вводную статью о программировании под Linux.

Начнем с того, что по разным оценкам примерно 95% системы Линукс было написано на языке программирования высокого уровня Си. На нем мы с вами сегодня и напишем нашу первую программу под эту операционную систему.

Конечно здесь, как оказалось, нет ничего сложного, но все же если вы совсем не знакомы с языком C/С++, то советую сначала прочитать какой-нибудь вводный курс по программированию на Си.

Итак, приступим. Как я уже говорил, весь Линукс «пропитан» языком Си, а значит нам не понадобится устанавливать дополнительное ПО для написания/компиляции/отладки/запуска программы. Для начала перейдем желательно в пользовательскую директорию(чтобы не выдавать потом права файлам), для дальнейшего сопоставления выведем список файлов в ней и попытаемся создать новый файл с расширением *.c.

gedit os.c

Если посмотреть на скриншот выше, то не сложно догадаться, что командой gedit мы открываем файл на редактирование,  а если он не существует, то он создается после внесения в него изменений. Если у вас не установлен gedit, то попробуйте другие текстовые редакторы. Несколько подробнее я писал об этом с статье Настройка меню выбора установленных операционных систем GRUB.

Теперь в открывшемся файле давайте напишем простейшую программу на языке Си, которая будет всего лишь выводить приветствующее Вас сообщение.

простая программа на Си

Как только мы ее написали, можем смело сохранять файл. Но давайте проследим за изменениями в папке для дальнейшего понимания процесса написания программ на Си.

На первом скриншоте было запечатлены файлы и папки, находившиеся в ней до создания программ. По идее теперь у нас должен прибавиться 1 файл с именем os.c. Этот файл будет исходником для последующей компиляции.

source file

Как мы с вами видим, файл появился(подчеркнут красной линией), а значит мы можем его компилировать. Для компиляции будем использовать встроенные компилятор gcc, который входит в дистрибутив Линукс и не требует дополнительной установки. По началу возникают некоторые сложности с компиляцией, потому что ее процесс отличается от компиляции через визуальные графические IDE под Windows.
В интернете вы можете найти множество различных комбинация директив gcc, но я сам использую всегда и вас советую проводить компиляцию и сразу же построение исполнимого файла, а не по отдельности. Итак, пишем в командной строке команду:

gcc os.c -o OS

Давайте рассмотрим ее поподробнее,

  • gcc  указывает программный модуль, который будет анализировать код программы
  • os.c — файл, который мы компилируем
  • -o — директива компилятору, заставляющая его строить исполнимый файл
  • OS — имя «экзешника»(исполнимого файла)

компиляция через gcc

Компиляцию мы запустили и если никаких сообщений нету — ошибок также нету. Для интереса еще раз наберем команды dir и ls и убедимся, что исполнимый файл OS создан. Так оно и есть, а значит, пора запускать нашу программу!

Для запуска наберите в терминале команду «./«(точка,слеш) и без пробела(!!) название исполнимого файла.Все, программа запущена, пора радоваться тому, что все работает.

прогармма работает


К записи оставлено 6 коммент.

Смотрю темку сменил, надеюсь что новыми статьями порадуешь

vawsan

Да, как вернулся с летнего отдыха, сразу сел за работу! А материал уже наскреб еще до отъезда, но не успел написать. В ближайшее время порадую =)

Прочитал до «высшего уровня»… Вообще то это язык высокого уровня. И шкала тут не рейтинговая, а техническая: уровень вниз — стремится к уровню процессора, уровень вверх — стремится от процессора к кроссплатформенности и макрокомандам. Если кого и называть высшим, то какой нибудь java, но по рейтинговой шкале он полный сосунок т.к. в жертву универсальности он приносит производительность.

vawsan

Вы между прочим нашли опечатку, которая смысл меняла в ненужную сторону) Спасибо, поправим) А расписали Вы все правильно в принципе)

Спасибо за пост, не нагружен лишней информацией, то что нужно для знакомства с темой.
З.Ы. очепятка в слове «порка» =)

vawsan

Благодарю за бдительность, опечатку исправил)
Рад, что вам понравилось)


Оставить комментарий

Подписаться не комментируя по