LINUX.ORG.RU

Нубский вопрос по Сишке и GCC и вообще всему


0

1

Если заголовки хранятся в /usr/includes, то где сам код? Или в заголовках только описание, а подключаются код в бинарных библиотеках?

★★★★★

Последнее исправление: sphericalhorse (всего исправлений: 4)

Точно так. Код находится в /usr/lib/gcc в виде статических и динамических библиотек.

LongLiveUbuntu ★★★★★
()

Или там уже бинарные библиотеки подключаются?

Да! Причём те, которые ты укажешь линкеру.

Bad_ptr ★★★★★
()

подкури-ка k&r, тащемта например

Или он в бинарных библиотеках?

да. но может быть и прямо в хедере, либо в виде builtin вкомпиливаться gcc прямо в твой бинарь

anonymous
()
Ответ на: комментарий от anonymous

подкури-ка k&r, тащемта например

Собснаговоря докуриваю.

sphericalhorse ★★★★★
() автор топика
Ответ на: комментарий от sphericalhorse

функции write, — мне нужно на kernel.org

Многие такие функции находяться в библиотеке C. Такчто ищи исходники libc. Там, в дебиане, например elibc, вроде.

Bad_ptr ★★★★★
()
Ответ на: комментарий от anonymous

Не обращай внимания.

UPD: Уже и не на что обращать.

sphericalhorse ★★★★★
() автор топика
Ответ на: комментарий от Bad_ptr

*Пора уже написать правду в профиле, что ли...*

ПС: Арчь, хотя без разницы, всё равно код нашел бы.

sphericalhorse ★★★★★
() автор топика
Ответ на: комментарий от sphericalhorse

apt-get source libc6 скачает то что тебе надо если у тебя бубен или доебан

mmarkk
()

В правильных системах код лежит в /usr/src

bash-4.2$ du -sh /usr/src/
1.6G	/usr/src/
anonymous
()

сам код в библиотеках /usr/lib либо в виде объектников (для статической компиляции) либо в виде shared objects. стандартная линкуется автоматом. все остальные - ключиком -l (gcc).

write(2) есть в glibc. только он на самом деле не тот write который прямо в ядре, а просто враппер. потому-что abi linux kernel специфичен, он не через стек параметры принимает. так вот тот самый враппер, эти параметры хитро складывает в регистры и делает int 0x80. тоже самое касается остальных сисколов.

nanoolinux ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.