Linux系统使用的C标准库
Linux系统中的C语言标准库通常用的都是GNU C Library,即glibc。
glibc基于ISO C 标准,如C89、C90等。并且进行了一定扩展,比如:支持POSIX和一些其他的系统特有功能。
glibc是开源的,在Linux各个发行版中广泛使用,作为默认的C语言库。
除此之外,对于一些嵌入式系统,还有其他C库,比如musl libc,uClibc等。这些库的设计,满足了轻量化,并专门为嵌入式系统打造。
GNU C Library (glibc) 是一系列文件的集合。由一些头文件、object文件和动态链接库组成,一起为Linux系统提供标准C库的功能。
具体构成如下:
1,Header files:
在/usr/include中,包含函数原型和宏定义,在编译C程序时,引用到glibc时要使用。
2,Shared libraries:
最主要的共享库文件是libc.so.x,这里的“x” 表示版本号。这个文件位于 /lib 或 /lib64 ,这个取决于你的系统架构。
这个动态库为标准C库的函数提供动态链接。
3,Object files:
这些文件,包括 crt1.o、crti.o 和 crtn.o 等,对于连接 C 程序至关重要。它们为初始化 C 程序提供启动代码和其他必要功能。
4,Configuration files and directories:
Glibc 还包括一些配置文件和目录,如 /etc/ld.so.conf 和 /etc/ld.so.conf.d/,它们指定了运行时搜索共享库的目录。
5,Source code:
glibc 的源代码可供检查和修改。源代码通常保存在 Linux 发行版提供的源代码包中,或直接从 GNU 项目中获取。
glibc中使用的系统调用
以使用open函数为例。open() 函数是在 C 标准库(libc)中定义的。不过,需要注意的是,C 标准库