Операционная система UNIX. Руководство программиста

     

ЗАПУСК УТИЛИТЫ LINT


Вызов утилиты lint имеет вид

lint [опции] файлы описатели_библиотек

Опции определяют набор проверок, выполняемых lint'ом, и степень подробности выдаваемых сообщений. Имена верифицируемых файлов должны оканчиваться на .c или .ln. Описатели-библиотек - это список имен библиотек, которые должны использоваться при анализе программы.

Опциям утилиты lint приписан следующий смысл:



-a  Не выдавать сообщений о присваиваниях long-значений переменным, не описанным как long.
 -b  Не выдавать сообщений о недостижимых операторах break.
 -c  Ограничиться проверкой ошибок в пределах каждого из .c-файлов; поместить информацию о внешних свойствах в файлы, оканчивающиеся на .ln.
 -h  Не применять эвристики (предназначенные для того, чтобы попытаться обнаружить ошибки, улучшить стиль и уменьшить сложность программы).
 -n  Не проверять совместимость со стандартной или мобильной lint-библиотеками.
 -o библ  Создать из исходных файлов lint-библиотеку с именем llib-lбибл.ln.
 -p  Попытаться проверить мобильность программы.
 -u  Не выдавать сообщения о функциях и внешних переменных, используемых, но не определенных, или определенных, но не используемых.
 -v  Не выдавать сообщения о неиспользуемых аргументах функций.
 -x  Не сообщать о внешних переменных, которые нигде не используются.

Если требуется указать более одной опции, их следует объединять в единый аргумент, такой как -ab или -xha.

Имена файлов, содержащих исходные C-тексты, должны оканчиваться на .c, что обязательно не только для lint'а, но и для C-компилятора.

Помимо перечисленных, утилита lint поддерживает опции вида

-lбибл

Они специфицируют библиотеки, содержащие функции, используемые в анализируемой C-программе. Исходный текст программы проверяется на совместимость с этими библиотеками. Проверка выполняется на основе файлов описания библиотек, имена которых формируются исходя из указанных аргументов. Данные файлы всегда открываются комментарием


/* LINTLIBRARY */

и содержат серию фиктивных определений функций. Наиболее существенными частями в этих определениях являются указания, возвращает ли функция значение и если да, то какого типа, каковы число и тип аргументов. Чтобы специфицировать особые свойства некоторых библиотечных функций, можно воспользоваться комментариями VARARGS и ARGSUSED. Как это сделать, написано в сле- дующем разделе, ТИПЫ СООБЩЕНИЙ LINT'А.

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

По умолчанию lint проверяет программы совместно со стандартной lint-библиотекой, содержащей описания функций, обычно загружаемых при выполнении C-программ. Если указана опция -p, проверяется еще один файл, содержащий описания функций из стандартной библиотеки, которая считается мобильной. Чтобы подавить всякую проверку библиотек, можно воспользоваться опцией -n.

Дополнительную информацию об опциях команды lint можно найти в статье lint(1) Справочника пользователя.




Содержание раздела