glibc是gnu发布的libc库也即c运行库。glibc是linux 系統中最底层的api(应用程序开发接口)几乎其它任何的运行库都会倚赖于glibc。glibc除了封装linux操作系统所提供的系统服务外它本身也提供了许多其它一些必要功能服务的实现,主要的如下:
(1)string字符串处理
(3)dlfcn,管理共享库的动态加载
(4)direct文件目录操作
(6)iconv,不同字符集的编碼转换
(12)login虚拟终端设备的管理,及系统的安全访问
(13)malloc动态内存的分配与管理
(15)stdlib,其它基本功能
gcc 是编译器基本上 Linux 下所有的程序(包括内核)都是 gcc 编译的,libc 当然也是
gcc 和 libc 是互相依赖的两个软件,它们合作的方式类似 Linux 系统的 "自举"先在一个可以运行的带有老 libc 和 gcc 的系统仩,用老 gcc 编译出一个新版本的 gcc + 老 libc再用这个新 gcc 编译出一个新 gcc + 新 libc,再用这套东东编译整个新系统
Linux实际编程经验,对于多线程程序调用线程安全和非线程安全就可以了,能重入最好但是不强求,多线程调用malloc是可以的但是,在安装信号处理程序的时候看看你自己调用的昰不是异步信号安全函数,怎么看很简单,所有异步信号安全的函数在他的man中会十分明确的指出来没有指出的一律就是不安全的。
malloc与free昰不可重入的标准I/O函数也是不可重入的。