Как соотнести версии glibc и "libc"? - PullRequest
0 голосов
/ 05 мая 2011

В справочной странице для realpath на моем компьютере с Linux написано:

VERSIONS
       On Linux this function appeared in libc 4.5.21.

Теперь, что это значит? На какой libc он ссылается - "Linux libc"? - и где я могу найти список, который соответствует различным разновидностям libc, чтобы я мог видеть, каковы минимальные требования для ссылки на эту функцию и другие?

GLIBC версии 2.13, что значительно ниже 4.5.21, но на странице Википедии о glibc написано:

В начале 1990-х годов разработчики ядро Linux раздвоило glibc. Их вилка, называемая "Linux libc", была поддерживается отдельно в течение многих лет и выпущенные версии со 2 по 5.

... и

Последняя использованная версия Linux libc использовал внутреннее имя (soname) libc.so.5. Исходя из этого, glibc 2.x в Linux использует soname libc.so.6

Означает ли это, что любой glibc эквивалентен "Linux libc" с основной версией выше 5?

Существуют другие справочные страницы, ссылающиеся на ту или иную версию "libc", поэтому realpath - это всего лишь один пример проблемы в целом.

Примечание: код, который я создаю, не ограничивается Linux, поэтому мне нужен определенный метод, чтобы определить, доступна ли определенная функция.

1 Ответ

2 голосов
/ 05 мая 2011

glibc, хотя и в версии 2.x, в течение многих лет назывался «libc6» для совместимости со схемой управления версиями старой libc3 / 4/5.В любом случае, справочные страницы в системе Linux очень полезны, но не обязательно каноничны.В glibc вместо справочных страниц используется система «info», поэтому для функций glibc вам, возможно, лучше взглянуть на руководство по glibc , чем на справочные страницы.Хотя категория ошибок в функции realpath интересна в историческом контексте, если только вы не нацелены на системы libc5 (что, конечно, не так), это не особенно полезно.

...