Я изучаю C, и я заметил, что я не могу найти файл реализации для некоторых заголовочных файлов, например, stdio.h
, который представляет собой библиотеку, которая содержит множество функций ввода/вывода, например printf
. Где я могу найти его реализацию?
Где найти реализации функций stdio.h?
Ответ 1
Скачайте один из них:
Или, еще лучше, загрузите несколько из них и сравните их реализации. Конечно, они, вероятно, делают много чего по сравнению с вашей конкретной стандартной библиотечной реализацией, но все равно будут довольно интересными, например. не-платформенные функции, такие как sprintf.
Ответ 2
Например здесь. Google - ваш друг - просто найдите stdio.c
. Но обратите внимание, что вы должны обрабатывать их как "одну реализацию многих возможных" - вы не знаете, как ваш компилятор делает это, читая их, вы просто получаете представление о том, как это можно сделать.
Ответ 3
Вам нужно найти исходный код для стандартной библиотеки C, такой как glibc: http://www.gnu.org/s/libc/
Вы можете скачать исходный код здесь: http://ftp.gnu.org/gnu/glibc/ Он содержит источник для всех библиотечных функций.
Ответ 4
Если вы устанавливаете SDK Windows, есть возможность включить стандартный исходный код библиотеки, чтобы вы также могли увидеть, как он реализован в Windows.
Ответ 5
В Ubuntu или другой ОС, которая использует aptitude для управления пакетами, вы можете использовать:
apt-get source libc6
например.
Кроме того, при запуске gcc в режиме подробного описания вы узнаете подробности путей, которые он использует. Это должно помочь вам найти, какие include и пути библиотеки он использует.
gcc -v
или
gcc -Wl,--verbose