我在搜索C标准库的源代码.我的意思是,例如,cos、abs、printf、scanf、fopen和所有其他标准C函数是如何编写的,我的意思是查看它们的源代码.

所以在寻找这个的时候,我遇到了GLIBC,但我不知道它到底是什么.它是GNU C库,它包含一些源代码,但它们实际上是什么,它们是标准函数的源代码还是其他什么?它是用来做什么的?

推荐答案

它实现了C标准中描述的Standard C library个,以及一些额外有用的东西,这些东西不是严格的标准,但经常使用.

其主要内容包括:

1)ANSI、C99、C11标准中描述的C库.它包括宏、符号、函数实现等(printf()、malloc()等)

2) POSIX标准库.系统调用的"用户区"粘合剂.(open()、read()等.实际上glibc并不"实现"系统调用.内核做到了.但glibc为内核提供的服务提供了用户界面,因此用户应用程序可以像使用普通函数一样使用系统调用.

3)也有一些不规范但有用的东西.

"使用原力,读取来源"

$git clone git://sourceware.org/git/glibc.git

(最近,当我在glibc中浏览malloc.c时,我非常开明)

C++相关问答推荐

char为16位且Short也为16位的c环境合法吗

错误:在.h程序中重新定义 struct

Ebpf内核代码:permission denied:invalid access to map value

__VA_OPT__(,)是否可以检测后面没有任何内容的尾随逗号?

显式地将值转换为它从函数返回的类型的含义是什么?

如何将字符串argv[]赋给C中的整型数组?

警告:C++中数组下标的类型为‘char’[-Wchar-subpts]

如何在C中使printf不刷新标准输出?

如何有效地编写代码来判断两个元素数量相同的数组即使在不同的位置也具有相同的元素?

Square不与Raylib一起移动

为什么指针运算会产生错误的结果?

为 struct 中的数组动态分配内存时出错

为什么realloc函数在此代码中修改变量?

如何使用calloc和snprintf

被调用方函数内部的C-Struct变量,它是指针还是无关紧要

解密Chrome加密密钥

Ubuntu编译:C中的文件格式无法识别错误

快速准确计算double的小数指数

在 C23 之前如何对空指针使用nullptr?

如何在 C 中编辑 struct 体中的多个变量