рефераты конспекты курсовые дипломные лекции шпоры

Реферат Курсовая Конспект

Разработка программ на языке C/C++ в ОС Linux

Разработка программ на языке C/C++ в ОС Linux - раздел Программирование, Лабораторная Работа По Курсу "операционные Системы"...

Лабораторная работа по курсу "Операционные системы"

Разработка программ на языке C/C++ в ОС Linux

Цель работы: освоить процесс разработки программ на языке С/С++ в ОС Linux; научиться работать с параметрами командной строки и переменными окружения в программах на С/С++, выполнять системные вызовы и обрабатывать ошибочные ситуации.

 

1. Этапы создания программы на языке С/С++

На рис. 1 представлена последовательность разработки программы на языке С. В ОС Linux один из популярных наборов компиляторов - GNU Compiler Collection, или GCC. Он включает компиляторы с языков C, C++, Java, Fortran и др. Имя компилятора языка С - gcc, языка С++ - g++. Для языка С также можно использовать компилятор cc, имеющийся во многих ОС семейства UNIX. Для языка С расширения исходных файлов - .c и .h, для языка С++ - .cpp, .hpp, .cxx, .hxx, .C и .H. Расширение объектных файлов - .o, библиотек объектных файлов - a. Исполняемые файлы в Linux обычно не имеют расширения.

 

 

Задание 1. Введите команду $man gcc (или $info gcc) и запишите назначение основных опций компилятора gcc: -c, -S, -E, -o.

Последовательность команд для создания программы.

  2. Программа состоит из нескольких исходных файлов (module1.c, module2.c,…  

Использование утилиты Make

- целевые файлы (цели), которые необходимо построить; - правила для их построения; - зависимости, определяющие когда данную цель необходимо перестроить заново.

Доступ к параметрам командной строки

  Задание 4. Выполните следующие три примера, протестируйте их с параметрами,…

4.1.

/* Ex4_1.c Печать параметров командной строки*/

#include <stdio.h>

main ( int argc, char *argv[] )

{ if ( argc < 2 )

{ printf( “Usage : %s parametern”, argv[0] ) ;

exit ( 1 ) ;

}

printf("Starting program %s n", argv[0] ) ;

printf("with %d parameter(s)n", argc-1 ) ;

printf("First parameter is %sn", argv[1] ) ;

exit ( 0 ) ;

}

4.2.Измените предыдущий пример в Ex4_2.c, в котором задается пераметр целого типа. Для преобразования строки в целое число используйте функцию atoi.

ПРИМЕЧАНИЕ. Получить информацию о стандартных функциях С можно по команде $info libc.

4.3.

/* Ex4_3.c Печать произвольного числа параметров */

#include <stdio.h>

main(int argc, char *argv[])

{ for ( ; *argv ; ++argv )

printf("%sn", *argv ) ;

}

 

 
 

Соглашение Linux о параметрах командной строки.Стандартные программы обычно придерживаются следующих соглашений. Все параметры командной строки делятся на опции, или флаги, ипрочие параметры. Опции модифицируют работу программы, в то время как прочие параметры служат для передачи входных данных. В свою очередь, опции могут быть двух видов:

- Короткие опции состоят из одного знака 'минус' и одного символа. Короткие опции легче набирать.

- Длинные опции состоят из двух подряд идущих знаков 'минус' и ряда символов. Длинные опции легче запоминать.

Обычно программы поддерживают обе формы опций, например, -h и --help.

 

Переменные окружения

В программе можно получить значение переменной окружения при помощи функции getenv из <stdlib.h>. Эта функция принимает имя переменной и…   Задание 5. Выполните следующие два примера, запишите в отчет текст примеров и результаты их тестирования.

5.1.

/* Ex5_1.c Печать переменных окружения */

#include <stdio.h>

extern char** environ;

int main ()

{

char** var;

for (var = environ; *var != NULL; ++var)

printf ("%sn", *var);

return 0;

}

5.2.Данный пример является частью коммуникационной программы. Имя сервера задается в переменной окружения SERVER_NAME. Если эта переменная не установлена, то будет использован сервер по умолчанию. Выполните эту программу для обоих вариантов запуска:

a) Переменная SERVER_NAME отсутствут в окружении;

b) Перед запуском программы экспортируйте в окружение переменную SERVER_NAME (см. лабораторную работу 1).

 

/* Ex5_2.c Доступ к переменной окружения */

#include <stdio.h>

#include <stdlib.h>

int main ()

{

char* server_name = getenv ("SERVER_NAME");

if (server_name == NULL)

/* Переменная окружения SERVER_NAME не установлена,

использовать значение по умолчанию */

server_name = "server.my-company.com";

printf ("accessing server %sn", server_name);

/* Далее - доступ к серверу... */

return 0;

}

Обработка ошибок в системных вызовах

Получить в программе текстовое сообщение об ошибке можно двумя способами: 1) При помощи функции strerror из <string.h>; функция принимает errno и… 2) При помощи функции perror из <stdio.h>; функция принимает строку, которую она выводит в качестве префикса…

Порядок выполнения лабораторной работы

1. Выполните задания 1-6.

2. Занесите в отчет описание заданий со всеми требуемыми пояснениями.

 

Требования

1. При подготовке к лабораторной работе (дома) выполните задания 2-6. Занесите в отчет тексты программ, пояснения и предполагаемые результаты выполнения.

2. Студент должен знать ответы на следующие вопросы:

 

Вопросы

2. Как создать программу из нескольких модулей? 3. Как добавить в программу библиотеку объектных модулей? 4. Как использовать утилиту Make для создания программ?

– Конец работы –

Используемые теги: Разработка, программ, языке, C/C, ОС, Linux0.103

Если Вам нужно дополнительный материал на эту тему, или Вы не нашли то, что искали, рекомендуем воспользоваться поиском по нашей базе работ: Разработка программ на языке C/C++ в ОС Linux

Что будем делать с полученным материалом:

Если этот материал оказался полезным для Вас, Вы можете сохранить его на свою страничку в социальных сетях:

Еще рефераты, курсовые, дипломные работы на эту тему:

Лекция: Уровни абстракции ОС. ОС с архитектурой микроядра. Виртуальные машины. Цели проектирования и разработки ОС. Генерация ОС В лекции рассматриваются следующие вопросы: методы проектирования и реализации ОС: уровни абстракции ОС; ОС с архитектурой мик
В лекции рассматриваются следующие вопросы методы проектирования и реализации... Содержание Введение Уровни абстракции ОС Операционные системы с микроядром Виртуальные машины другой распространенный подход к...

ПБУ 6/01 Учет ОС. Порядок признания ОС в учете. Организация аналитического учета ОС. Первичная документация по учету и инвентаризации ОС
Определение и классификация нематериальных активов особенности их учета ПБУ Учет НМА Условия признания НМА в бухгалтерском учете... Порядок бухгалтерского учета нематериальных активов регулируется Положением по бухгалтерскому учету Учет...

ПБУ 6/01 Учет ОС. Порядок признания ОС в учете. Организация аналитического учета ОС. Первичная документация по учету и инвентаризации ОС
Определение и классификация нематериальных активов особенности их учета ПБУ Учет НМА Условия признания НМА в бухгалтерском учете... Порядок бухгалтерского учета нематериальных активов регулируется Положением по бухгалтерскому учету Учет...

Лабораторная работа №11 Программы – архиваторы ОС MS-DOS (zip, arj,rar) и ОС семейства WINDOWS(winzip, winrar)
Цель Знакомство с основными возможностями архиватора WinRAR Использование расширенных функций программы... Задачи работы... создание архивов и извлечение из них файлов...

Особенности ОС для различных классов компьютерных систем. ОС реального времени. ОС для облачных вычислений
Введение... Чтобы лучше понять каковы особенности ОС для различных классов компьютерных... Развитие концепций и возможностей ОС представлено на рис...

Интерфейс пользователя ОС Linux и программирование на языке оболочки
На сайте allrefs.net читайте: "Интерфейс пользователя ОС Linux и программирование на языке оболочки"

Два объекта истории русского языка: живой язык диалектный и литературный язык
Новые общественные функции приобретает русский язык по мере сложения новой исторической общности советского народа он становится межнациональным... Современный период... Горшкова Хабургаев ИГРЯ...

Структура программы на языке Си. Этапы выполнения программы
Лексемы... Из символов алфавита формируются лексемы языка минимальные значимые единицы... идентификаторы...

Разработка программы на языке LISP для построения кривых Серпинского i-го порядка
Эти кривые соответствуют некоторомурегулярному образу.Алгоритм для построения этих кривых на экране монитора илина графопостроителе под управлением… И действительно, этизамыкающие линии представляют собой отрезки прямых в… Можно считать, что они принадлежат кнепустой начальной кривой S квадрату, стоящему на одном углу. Теперь достаточно…

Понятие литературный язык. Место литературного языка среди других форм существования языка
Литературный язык это язык государственных и культурных учреждений школьного обучения радио и телевидения науки публицистики художественной... Современный литературный язык многофункционален Он используется в различных... Основные сферы использования литературного языка телевидение и кино наука и образование печать и радио...

0.036
Хотите получать на электронную почту самые свежие новости?
Education Insider Sample
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Реклама
Соответствующий теме материал
  • Похожее
  • По категориям
  • По работам