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

       Linux是由C语言编写的,它有自己的头文件和内核函数来实现内核的功能。内核的编写并不依赖于C标准库。这一点我之前是有所混乱的,后来想通了。而且C标准库里面的一些函数是封装了Linux的系统调用的。所以不可能依赖C标准库。而所谓的POSIX标准,是规定操作系统要提供哪些接口,但没有规定具体的实现。POSIX标准包含了C标准规定的头文件和另外一些提供系统服务的头文件。通过POSIX接口,我们可以进行系统编程。

posted on 2014-12-05 17:04  W space  阅读(487)  评论(0编辑  收藏  举报