GNU C LIB

自由的歌谣

  本书是自由软件丛书的一部分,也是一首自由的歌谣。
  本书中阐述的GNU C库,定义了所有在ISO C标准所规定的,以及POSIX标准、其它相关标准和UNIX系统所派生的标准中定义的所有函数,为GNU操作系统所支持。 C程序设计语言提供诸如输入/输出、内存管理、字符串操作以及其它的相关函数,这些工具在C语言中被定义成标准库(library),读者可以链接到读者的程序中使用。本书的目的是告诉读者如何使用GNU library提供的所有函数,其中包括所指出的函数是哪个标准所定义的,以帮助读者发现潜在的造成不可移植的因素。

一、本书的对象
  本书在讲解之时,假定读者已有最起码的C程序设计语言(最好是传统的ISO标准C)基础和编程概念。因此此书的对象群是一些高级程序设计人员、系统分析人员以及象我这样的自由软件资源的发烧友们。
  GNU C库包括许多头文件(header files),每个头文件定义了一组相关的函数,这些是GNU C编译器在编译读者的程序时要用到的。例如,头文件"stdio.h"定义了一些与输入/输出有关的函数,而头文件"string.h"则定义了一些与字 符串处理相关的函数。本书也是根据这些头文件来组织的。
  如果读者是第一次阅读此书,可以重点阅读所有的介绍部分,而略过其余的章节。因为GNU C库中提供了大量的函数,一个人也许要用穷尽一生的时间才能够熟记本书中介绍的每一个函数的具体用法。我们建议读者在阅读此书时,只需要了解GNU中大概 提供了哪些函数,以便今后在写程序时知道可以使用哪个,以及在本书中如何查找等等。本书更象一本GNU字典类的工具书。

二、本书讨论的标准和移植性
  本书讨论GNU C库遵照的各种各样标准和其他来源。这些来源包括:ISO C、POSIX标准、System V及BSD(伯克利)UNIX的实施标准。本书最重要的目的是告诉读者如何有效地使用GNU C库提供的函数。然而,如果读者想让程序兼容这些标准,或者易于移植到其它操作系统,对GNU C库的使用细节都会不同。

  2.1 ISO C
  GNU C库与被美国国家标准协会ANSI所采用的C标准----"ANSI C"(ANSI X3.159-1989)以及后来国际标准化组织ISO所采用的 C标准----"ISO C"(ISO/IEC 9899:1990,"Programming languages-C")兼容。我们也参照了ISO C这一越来越被关注和认可的标准。GNU C所提供的所有头文件和函数是ISO C的超集。

  2.2 POSIX(可移植操作系统接口)
  GNU C库也与ISO POSIX协议族(ISO/IEC 9945,ANSI/IEEE Std 1003)兼容。POSIX来源于各种各样的UNIX操作系统。POSIX标准库是ISO C标准库的超集,POSIX定义了新的一新附加函数,这些函数提供了一些针对典型的操作系统环境的低级支持,而不是提供通用的,使程序能运行在各种操作系统环境下的函数。GNU C库中实现了所有的在ISO/IEC 9945-1:1996标准----POSIX 1.1(系统应用程序接口)中所定义的函数功能。对于ISO C标准而言,最主要的扩展在于文件接口 、特殊设备控制函数以及进程处理函数。 同时GNU C库也实现了ISO/IEC 9945-2:1993----POSIX.2(shell和工具标准)中所定义的一些函数功能。

  2.3 伯克利Unix
  GNU C库还从像4.2 BSD、4.3 BSD、4.4 BSD UNIX系统以及SunOS系统中吸收了一些非正式标准的函数。而这些系统支持绝大部分的ISO C和POSIX标准,事实上,在4.4 BSD系统和SunOS的较新版本都完全支持了这两个标准。BSD加入了对"符号链接"的定义,新增了select函数、BSD信号(signal)函数,还有著名的sockets函数库。

  2.4 SVID (System V接口定义)
  System V接口定义(SVID)是一个描述AT&T UNIX System V操作系统的文档。它是POSIX标准的超集。GNU C库定义了几乎包括了那些SVID需要的、ISO C或POSIX标准不需要的函数,以期与System V及其它UNIX系统(如SunOS)兼容。同时,GNU C也剔除了那些在SVID中模糊不清、不常用的函数定义。(事实上,UNIX System V系统本身也没有实现它们)在SVID中提供了IPC进程间通信、共享内存,hsearch和drand48函数集,fmtmsg以及一些数学运算函数。

  2.5 XPG (X/Open可移植系统指南)
  X/Open可移植系统指南,是X/Open公司出版的,是一个比POSIX更通用的事实标准。X/Open公司拥有UNIX系统的版权,XPG说明是用于满足设计UNIX系统的需要设计的。 GNU C库遵照X/Open可移植系统指南V4.2,以及所有X/Open系统接口的接展,如XSI(X/Open系统接口)等。附加的功能主要来自于System V和BSD系统。一些System V中的错误也得到了纠正。获得XPG标准的认可是一个UNIX系统很重要的一关。

三、本书的精神
  自由的精神。
  本书以及其自由软件组织告诉我们:没有Microsoft对源代码的垄断,我们一样可以成就许多事情,一样可以成就伟业。
  就象最新奥斯卡男主角在颁奖典礼上所说的:"我今天的成就将告诉那些正处于艰难的环境中的人们,不管你是在澳大利亚、或是奥克兰或是其它地方的农村长大,不管你现在的处境多么不济;只要你有坚毅的勇气和执着的梦想,你就一定可以成功"。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值