Почему strcpy определен в Lint_strcpy.c в minix?

#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 (теоретически они могут / должны использовать общий исходный файл).