C语言、C标准库、glibc、Linux内核 之间的关系

110 篇文章 25 订阅
69 篇文章 17 订阅
这篇博客探讨了C语言的标准库如何为编程提供便利,如printf()和scanf()等函数。C标准仅规定了函数接口,具体实现则由如glibc这样的库完成。Linux内核并不依赖C标准库,而是有自己的头文件和内核函数。POSIX标准定义了操作系统应提供的接口,包括C标准的头文件和额外的系统服务头文件,使得系统编程更为统一。
摘要由CSDN通过智能技术生成

首先 C 是一门语言,包含了一些规定的语法和结构,但并没有包含到我们平常所用的函数,如 printf() 和 scanf(),这些只是由 C 标准库所提供的。之所以存在 C 标准库,是因为这些已经编好的函数是我们平常编程经常用到的,这可以方便我们的工作。当然,你也可以自己编写方便编程、属于自己的 C 库。C 标准仅仅是规定了接口,也就是仅规定了函数原型,或者说头文件,而具体的实现各有不同。glibc 库是其中一种对 C 标准的实现,由 GNU 完成,GNU C LIBRARY。我们平常写 C 程序时,为了可以用到一些规定好的函数,会在前面包含头文件,相当于函数原型声明。通过 gcc 对程序编译,然后链接 C 库,链接相当于将函数的具体实现连起来,最后形成二进制文件。

Linux 是由 C 语言编写的,它由自己的头文件和内核函数来实现内核的功能。内核的编写并不依赖于 C 标准库。

而且 C 标准库里面的一些函数是封装了 Linux 的系统调用的。

所谓的 POSIX 标准,是规定操作系统要提供哪些接口,但没有规定具体的实现。POSIX 标准包含了 C 标准规定的头文件和另外一些提供系统服务的头文件。通过 POSIX 接口,我们可以进行系统编程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值