当我们使用 gdb调试程序时,我们通常会看到在 libc(glibc?)中定义了奇怪名称的函数。我的问题是:
libc/glibc是某些标准 C/C + + 函数(如 strcpy、 strlen、 malloc)的标准实现吗?open、 close、 fctl这样的 Unix/Linux 系统调用的包装器?如果是这样,为什么我们不能直接发出没有 libc的系统调用?libc是只包含一个 lib (.a或 .so)文件,还是包含许多 lib 文件(在本例中,libc是这组 lib 的通用名称) ?这些 lib 文件驻留在哪里?libc和 glibc有什么不同?