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

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

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

4 ответов


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

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

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

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

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

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

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

(недавно я был довольно просветленным, когда смотрел через Мэллок.c в glibc)


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

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

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

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


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


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

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