#freebsd #minix
#freebsd #minix
Вопрос:
Например, во FreeBSD strcpy определен в lib/libc/string/strcpy.c . Почему в minix он определен в lib/libc/string/Lint_strcpy.c, а не в strcpy.c, как во FreeBSD? Что означает префикс Lint ?
Стоит отметить, что в minix некоторые функции (например, strpcpy) определяются таким образом. Я имею в виду, strpcpy определен в lib/libc/string/strpcpy.c, но strcpy определен в lib/ libc/string/Lint_strcpy.c. Какой в этом смысл?
Ответ №1:
Если вы действительно посмотрите на источник внутри lib/libc/string/Lint_strcpy.c
, вы обнаружите, что это пустое определение.
Как и в исходном источнике NetBSD, фактическое определение strcpy()
используемого при создании библиотеки C для Minix находится в common/lib/libc/string/strcpy.c
.
Это сделано для того, чтобы одно и то же определение можно было использовать напрямую из одного и того же исходного файла как для ядра, так и для пользовательского пространства.
Lint_
Префикс указывает на файл, который существует только для создания «библиотеки lint», и фактически является сокращением для некоторого упрощения процесса сборки библиотек lint (теоретически они могут / должны использовать общий исходный файл).