Программирование для Linux. Профессиональный подход
Шрифт:
11.5. Вместо эпилога
Планируя распространять программу в Internet, не забудьте написать для нее документацию. Многие люди не осознают, что создать качественную документацию так же трудно и долго, как и написать хорошую программу. Правда, вопрос подготовки документации — тема отдельной книги, поэтому
Вероятнее всего, для программы потребуется создать
Чтобы узнать, как ОС Linux ищет
Можно также подготовить документацию в формате GNU-системы Info. Для получения информацию об этой системе выполните команду
Для многих Linux-лрограмм имеется также документация в формате простого текста и HTML.
Удачного программирования!
Часть III
Приложения
Приложение А
Вспомогательные инструменты разработки
Разработка безошибочных и быстрых Linux-программ требует не только понимания операционной системы Linux и ее системных вызовов. В этом приложении будут рассмотрены методики, позволяющие находить ошибки периода выполнения (например, неправильное использование оперативной памяти) и определять, какие компоненты программы требуют наибольших вычислительных ресурсов. Анализ программного кода дает лишь часть этой информации; чтобы получить остальную часть, необходимо запустить программу и воспользоваться описанными ниже инструментами.
А.1. Статический анализ программы
Некоторые программные ошибки можно выявить, воспользовавшись средствами статического анализа исходных текстов. Если вызвать компилятор
С помощью различных флагов командной строки можно заставить компилятор
Попробуем скомпилировать программу "Hello, World", представленную в листинге А.1.
Будучи вызванным без флагов, компилятор не выдаст никаких предупреждений, хотя программа не соответствует стандарту ANSI Если же включить флаги
Компилятор сообщает о следующих проблемах:
■ не указан тип возвращаемого значения функции
■ функция
■ функция
Анализ исходных текстов программы не позволяет выявить все возможные ошибки и неэффективные конструкции. В следующем разделе описываются четыре средства поиска ошибок при работе с динамической памятью. В конце приложения будет рассказано о том, как анализировать время работы программы с помощью утилиты-профайлера
А.2. Поиск ошибок в динамической памяти
При написании программы зачастую неизвестно, сколько памяти потребуется ей во время выполнения. Например, строка, читаемая из файла, может иметь любую длину. Работа с динамической памятью осуществляется посредством функций
■ число запросов на выделение памяти (вызовов функции