Марк Митчелл - Программирование для Linux. Профессиональный подход

Тут можно читать онлайн Марк Митчелл - Программирование для Linux. Профессиональный подход - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Вильямс, год 2002. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Программирование для Linux. Профессиональный подход
  • Автор:
  • Жанр:
  • Издательство:
    Вильямс
  • Год:
    2002
  • Город:
    Москва
  • ISBN:
    5-8459-0243-6
  • Рейтинг:
    3.6/5. Голосов: 101
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

Марк Митчелл - Программирование для Linux. Профессиональный подход краткое содержание

Программирование для Linux. Профессиональный подход - описание и краткое содержание, автор Марк Митчелл, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Данная книга в основном посвящена программированию в среде GNU/Linux. Авторы применяют обучающий подход, последовательно излагая самые важные концепции и методики использования расширенных возможностей системы GNU/Linux в прикладных программах. Читатели научатся писать программы, к интерфейсу которых привыкли пользователи Linux; освоят такие технологии, как многозадачность, многопотоковое программирование, межзадачное взаимодействие и взаимодействие с аппаратными устройствами; смогут улучшить свои программы, сделав их быстрее, надежнее и безопаснее; поймут особенности системы GNU/Linux, ее ограничения, дополнительные возможности и специфические соглашения.

Книга предназначена для программистов, уже знакомых с языком С и имеющих базовый опыт работы в GNU/Linux.

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

Программирование для Linux. Профессиональный подход - читать книгу онлайн бесплатно, автор Марк Митчелл
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

■ Модуль cleanпредназначен для удаления всех скомпилированных компонентов.

■ Модуль serverподключает к проекту исполняемый файл сервера. Компилируются и компонуются исходные файлы, перечисленные в переменной SOURCES.

■ Последнее правило представляет собой шаблон компиляции совместно используемых файлов серверных модулей.

Обратите внимание на то, что исходные файлы серверных модулей компилируются с флагом -fPIC, так как они включаются в совместно используемые библиотеки (см. раздел 2.3.2, "Совместно используемые библиотеки").

Исполняемый файл serverкомпонуется с флагом -Wl,-export-dynamic. Благодаря этому файл будет экспортировать свои символические константы, что позволит динамически загружаемым модулям ссылаться на функции, находящиеся в файле common.c.

11.4.2. Создание сервера

Построить исполняемый файл несложно. Перейдите в каталог, содержащий исходные файлы, и вызовите команду make:

% make

cc -Wall -g -с -o server.о server.с

cc -Wall -g -с -o module.о module.с

cc -Wall -g -с -o common.о common.с

cc -Wall -g -с -o main.o main.c

cc -Wall -g -Wl,-export-dynamic -o server server.о module.о

common.о main.o -ldl

cc -Wall -g -fPIC -shared -o diskfree.so diskfree.c

cc -Wall -g -fPIC -shared -o issue.so issue.с

cc -Wall -g -fPIC -shared -o processes.so processes.с

cc -Wall -g -fPIC -shared -o time.so time.с

В результате будут созданы программа serverи совместно используемые библиотеки серверных модулей:

% ls -l server *.so

-rwxr-xr-x 1 samuel samuel 25769 Mar 11 01:15 diskfree.so

-rwxr-xr-x 1 samuel samuel 31184 Mar 11 01:15 issue.so

-rwxr-xr-x 1 samuel samuel 41579 Mar 11 01:15 processes.so

-rwxr-xr-x 1 samuel samuel 71758 Mar 11 01:15 server

-rwxr-xr-x 1 samuel samuel 13980 Mar 11 01:15 time.so

11.4.3. Запуск сервера

Для запуска сервера достаточно ввести в командной строке имя server. Если не задать номер порта с помощью опции --port( -p). ОС Linux самостоятельно выберет порт. При указании опции --verbose( -v) сервер покажет, какой порт ему назначен.

Если не назначить серверу адрес с помощью опции --address( ), сервер будет принимать запросы по всем имеющимся адресам. Для подключенного к сети компьютера это означает, что любой пользователь сети, зная номер порта сервера и имя страницы, сможет обратиться к серверу. Из соображений безопасности рекомендуем указывать адрес localhost, пока вы не убедитесь в правильной работе сервера. В этом случае сервер будет связан с локальным сетевым устройством (обозначается как lo) и к нему смогут обращаться только программы, работающие на том же самом компьютере.

% ./server --address localhost --port 4000

Теперь сервер работает. Откройте окно броузера и попытайтесь обратиться к серверу по номеру порта. Запросите страницу, имя которой совпадает с именем модуля. Вот как, например, вызывается модуль diskfree.so:

http://localhost:4000/diskfree

Вместо 4000 можно указать любой другой номер порта, который был выбран. Чтобы завершить работу сервера, нажмите .

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

httр://host.domain.com:4000/diskfree

Если задать опцию --verbose( -v), сервер при запуске отобразит свою конфигурационную информацию, а затем будет показывать IP-адрес каждого подключающегося к нему клиента. Если подключаться через интерфейс localhost, клиентский адрес всегда будет равен 127.0.0.1.

С помощью опции --module-dir( -m) можно указать другой каталог размещения серверных модулей. По умолчанию они находятся там же, где и программа server.

Те, кто забыли или не знают синтаксис опций командной строки, могут вызвать программу serverс опцией --help( -h):

% ./server --help

Usage: ./server [ options ]

-a, --address ADDR Bind to local address (by default, bind

to all local addresses).

-h, --help Print this information.

-m, --module-dir DIR Load modules from specified directory

(by default, use executable directory).

-p, --port PORT Bind to specified port.

-v, --verbose Print verbose messages.

11.5. Вместо эпилога

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

Вероятнее всего, для программы потребуется создать man-страницу. Это первое место, куда пользователи обращаются за информацией о программе. Страницы интерактивной документации форматируются с помощью классической программы troff. Чтобы узнать формат troff-файлов, введите такую команду:

% man troff

Чтобы узнать, как ОС Linux ищет man-страницы, просмотрите справочную информацию о самой команде man:

% man man

Можно также подготовить документацию в формате GNU-системы Info. Для получения информацию об этой системе выполните команду

% info info

Для многих Linux-лрограмм имеется также документация в формате простого текста и HTML.

Удачного программирования!

Часть III

Приложения

Приложение А

Вспомогательные инструменты разработки

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

А.1. Статический анализ программы

Некоторые программные ошибки можно выявить, воспользовавшись средствами статического анализа исходных текстов. Если вызвать компилятор gccс флагами -Wallи -pedantic, он выдаст предупреждения о рискованных и потенциально ошибочных программных конструкциях. Исправив эти конструкции, вы снизите вероятность появления в программе скрытых ошибок, а также упростите компиляцию программы в других вариантах Linux или даже в других операционных системах.

С помощью различных флагов командной строки можно заставить компилятор gccвыдавать предупреждения о множестве спорных программных конструкций. Большинство проверок включается флагом -Wall. Например, компилятор будет сообщать о комментарии, начинающемся в другом комментарии, о неправильном типе возвращаемого значении в функции main(), о функциях, в которых пропущена инструкция return, и т.д. При наличии флага -pedanticкомпилятор будет выдавать предупреждения о несоответствии стандарту ANSI. В частности, будет сообщаться о наличии функции asm()и других GNU-расширений языка. В документации к компилятору не рекомендуется использовать этот флаг. Мы же советуем избегать большинства GNU-расширений, так как они имеют тенденцию меняться со временем и плохо поддаются оптимизации.

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Марк Митчелл читать все книги автора по порядку

Марк Митчелл - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Программирование для Linux. Профессиональный подход, автор: Марк Митчелл. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x