ЗАПУСК УТИЛИТЫ 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) Справочника пользователя.