Когда мы отлаживаем программу с использованием gdb
, мы обычно видим функции со странными именами, определенными в libc
(glibc
?). Мои вопросы:
- Является ли
libc/glibc
стандартной реализацией некоторых стандартных функций C/C++, таких какstrcpy
,strlen
,malloc
? - Или это не только первое использование, как описано выше, но и оболочка системных вызовов Unix/Linux, таких как
open
,close
,fctl
? Если так, почему мы не можем выпускать системные вызовы напрямую, безlibc
? - Содержит ли
libc
только один файл lib (.a
или.so
) или множество файлов lib (в данном случаеlibc
- это общее название этого набораlibc
)? Где находятся эти файлы lib? - В чем разница между
libc
иglibc
?