_GNU_SOURCE
Эти опции передаются компилятору из командной строки. И снова мы перечислим лишь основные, полный список можно найти в интерактивном справочном руководстве gcc.
-pedantic
-Wformat
printf
. -Wparentheses
-Wswitch-default
default
в операторах switch
, что обычно считается хорошим стилем программирования. -Wunused
-Wall
W
(не охватывается только -pedantic
). С ее помощью легко добиться чистоты программного кода.Существует еще огромное множество дополнительных опций предупреждений, все подробности см. на Web-страницах gcc. В основном мы рекомендуем применять -Wall
Интерфейсы и Linux Standards Base
Теперь мы собираемся подняться на уровень выше и перейти от программного кода на языке С к рассмотрению интерфейсов (системных функций), предоставляемых операционной системой. У этого уровня стандартизации есть разные составляющие: функции, предоставляемые библиотеками, и системные вызовы, реализованные операционной системой на низком уровне. И у тех, и у других есть два уровня детализации: какие интерфейсы представлены и определение того, что делает каждый интерфейс.
Определяющий документ в этой области для ОС Linux — Linux Standards Base (LSB, стандарты операционных систем на базе Linux), который можно найти на Web-сайтах http://mvw.linuxbase.org
или http://www.linux-foundation.org/en/LSB. Уже выпущено несколько версий стандартов, и работа продолжается.Список дистрибутивов, прошедших сертификацию, можно найти по адресу http://www.linux-foundation.org/en/Products
. Сертифицированы разные версии Red Hat, SUSE и Ubuntu, но помните о том, что после выпуска дистрибутива до момента сертификации должно пройти некоторое время. На Web-сайте есть список дистрибутивов, проходящих тестирование или только нуждающихся в некоторых обновлениях для того, чтобы пройти сертификационные испытания.В стандарте Linux Standards Base (что касается версии 3.1) определены три области для проверки на соответствие:
ядро — основные библиотеки, утилиты и местонахождение ключевых компонентов файловой системы;
С++ — библиотеки С++;
рабочий стол — дополнительные файлы для установок рабочего стола, в основном разные графические библиотеки.
В спецификации нас интересует больше всего ядро.
Стандарт LSB охватывает ряд областей в собственной документации, но для определений конкретных интерфейсов также приводит ссылки на внешние стандарты. В стандарте описаны следующие области:
форматы объектных файлов для двоичной совместимости;
стандарты динамического связывания;
стандартные библиотеки, как базовые, так и библиотеки X Window System;
командная оболочка и другие программы режима командной строки;
среда исполнения, включая пользователей и группы;
инициализация системы и уровни запуска (run levels).
В этой главе мы обсудим только стандартные библиотеки, пользователей и инициализацию системы.
Стандартные библиотеки LSB