Что такое GLIBC? Для чего его используют? - программирование
Подтвердить что ты не робот

Что такое GLIBC? Для чего его используют?

Я искал исходный код стандартных библиотек C. Я имею в виду, например, как работают cos, abs, printf, scanf, fopen и все другие стандартные функции C, я имею в виду их исходный код.

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

4b9b3361

Ответ 1

Его реализация библиотеки Standard C, описанная в стандартах C, плюс некоторые дополнительные полезные материалы, которые не являются строго стандартными, но часто используются.

Его основное содержание:

1) Библиотека C, описанная в стандартах ANSI, c99, c11. Он включает в себя макросы, символы, реализации функций и т.д. (Printf(), malloc() и т.д.)

2) Стандартная библиотека POSIX. Ключ "пользовательский" системных вызовов. (open(), read() и т.д. Фактически glibc не "реализует" системные вызовы. Ядро делает это. Но glibc предоставляет пользовательский наземный интерфейс сервисам, предоставляемым ядром, чтобы пользовательское приложение могло использовать системный вызов, как обычный функция.

3) Также некоторые нестандартные, но полезные вещи.

"используйте силу, прочитайте источник"

$git clone git://sourceware.org/git/glibc.git

(Недавно я был довольно просвещен, когда просмотрел malloc.c в glibc)

Ответ 2

Существует несколько реализаций стандарта. Glibc - это реализация, которую использует большинство Linux, но есть и другие. Glibc также содержит (как утверждает Aftnix) функции клея, которые настраивают сцену для переходов в ядро ​​(также называемые системными вызовами). Так много функций glibc не выполняют фактическую работу, а только делегируют ядру.

Чтобы прочитать источник Glibc, просто зайдите в Google. Есть множество сайтов, которые несут его, а также несколько вариантов.

Windows использует собственную реализацию Microsoft, которая, как мне кажется, называется MSVCR.DLL. Я сомневаюсь, что вы найдете исходный код этой библиотеки где угодно. Также обратите внимание, что некоторые функции, которые хакер Linux может воспринимать как "стандартные", просто не существуют в Windows (особенно fork). Верно и обратное.

Другие системы будут иметь свой собственный libc.

Ответ 3

В пакете glibc содержатся стандартные библиотеки, которые используются несколькими программами в системе. Чтобы сэкономить дисковое пространство и память, а также упростить модернизацию, общий системный код iskept в одном месте и разделяется между программами. Этот конкретный пакет содержит наиболее важные наборы разделяемых библиотек: стандартную библиотеку C и стандартную математическую библиотеку. Без этих двух библиотек система Linux не будет работать. Пакет glibc также содержит поддержку национального языка (locale).

Ответ 4

Да, это реализация стандартных библиотечных функций.

Более конкретно, это реализация для всех систем GNU и почти во всех системах * NIX, которые используют ядро ​​Linux.