Где найти реализации функций stdio.h? - PullRequest
20 голосов
/ 08 марта 2011

Я изучаю C и заметил, что не могу найти файл реализации для некоторых заголовочных файлов, таких как, например, stdio.h, это библиотека, которая содержит много функций ввода / вывода, таких как printf. Где я могу найти его реализацию?

Ответы [ 5 ]

26 голосов
/ 08 марта 2011

Скачать один из них:

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

7 голосов
/ 08 марта 2011

Вам необходимо найти исходный код для стандартной библиотеки C, например, glibc: http://www.gnu.org/s/libc/

Вы можете скачать исходный код здесь: http://ftp.gnu.org/gnu/glibc/ Он содержит исходный код для всех функций библиотеки.

6 голосов
/ 08 марта 2011

Например здесь .Гугл твой друг - просто ищи stdio.c.Но обратите внимание, что вы должны рассматривать их как «одну реализацию из многих возможных» - вы не знаете, как ваш компилятор делает это, читая их, вы просто получаете представление о том, как это можно сделать.

3 голосов
/ 09 сентября 2014

В Ubuntu или другой ОС, которая использует aptitude для управления пакетами, вы можете использовать:

apt-get source libc6

, например.

Кроме того, при запуске gcc в подробном режиме вы узнаете подробностипути, которые он использует.Это должно помочь вам найти пути включения и библиотеки, которые он использует.

gcc -v

или

gcc -Wl,--verbose
2 голосов
/ 08 марта 2011

Если вы устанавливаете Windows SDK, есть возможность включить исходный код стандартной библиотеки, чтобы вы также могли увидеть, как он реализован в Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...