众所周知,C 语言并没有为常见的操作,例如输入/输出、内存管理,字符串操作等提供内置的支持。 相反,这些功能一般由标准的“函数库”来提供。GNU 的 C 函数库,即 glibc,是 Linux 上最重要的 函数库,它定义了 ISO C 标准指定的所有的库函数,以及由 POSIX 或其他 UNIX 操作系统 统变种指定的附加特色,还包括有与 GNU 系统相关的扩展。目前,流行的 Linux 系统使用 glibc 2.0 以上的版本。glibc 基于如下标准:
系统调用是操作系统提供给外部程序的接口。在 C 语言中,操作系统的系统调用通常通过 函数调用的形式完成,这是因为这些函数封装了系统调用的细节,将系统调用的入口、参数以及 返回值用 C 语言的函数调用过程实现。在 Linux 系统中,系统调用函数定义在 glibc 中。
谈到系统调用时,需要注意如下几点:
有关系统调用我们将在以后详细讲述。
man,即 manunal,是 UNIX 系统手册的电子版本。根据习惯,UNIX 系统手册通常分为 不同的部分(或小节,即 section),每个小节阐述不同的系统内容。目前的小节划分如下:
其他手册小节:
手册页一般保存在 /usr/man 目录下,其中每个子目录(如 man1, man2, ..., manl, mann) 包含不同的手册小节。使用 man 命令查看手册页。
man 命令行:
man [-acdfFhkKtwW] [-m system] [-p string] [-C config_file] [-M path] [-P pager] [-S section_list] [section] name
常用命令行:
$ man open
$ man 7 man
$ man ./myman.3
Linux 中的大多数软件开发工具都是来自自由软件基金会的 GNU 项目,这些工具软件 件的在线文档都以 info 文件的形式存在。info 程序是 GNU 的超文本帮助系统。
info 文档一般保存在 /usr/info 目录下,使用 info 命令查看 info 文档。
要运行 info,可以在 shell 提示符后输入 info,也可以在 GNU 的 emacs 中键入 Esc-x 后跟 info。
info 帮助系统的初始屏幕显示了一个主题目录,你可以将光标移动到带有 * 的主题菜单上面,然后按回车键
进入该主题,也可以键入 m,后跟主题菜单的名称而进入该主题。例如,你可以键入 m,然后再键入 gcc 而进
进入 gcc 主题中。
如果你要在主题之间跳转,则必须记住如下的几个命令键:
* n:跳转到该节点的下一个节点;
* p:跳转到该节点的上一个节点;
* m: 指定菜单名而选择另外一个节点;
* f:进入交叉引用主题;
* l:进入该窗口中的最后一个节点;
* TAB:跳转到该窗口的下一个超文本链接;
* RET:进入光标处的超文本链接;
* u:转到上一级主题;
* d:回到 info 的初始节点目录;
* h:调出 info 教程;
* q:退出 info。
#DEMO#
可供用户参考的联机文档的另一种形式是 HOWTO 文件,这些文件位于系统的 /usr/doc/HOWTO 目录下。 HOWTO 文件的文件名都有一个 -HOWTO 后缀,并且都是文本文件。
每一个 HOWTO 文件包含 Linux 某一方面的信息,例如它支持的硬件或如何建立一个引导盘。
要想查看这些文件,进入 /usr/doc/HOWTO 目录,使用 more 命令,具体形式如下:
$ cd /usr/doc/HOWTO; more topic-name-HOWTO
另外,HOWTO 文档还有其他格式的文件,例如 HTML 和 PS 等,保存在 /usr/doc/HOWTO/other-formats 下。
Linux 的内核文档一般包含在内核源代码中,目录如下:/usr/src/linux-2.x.x/Documentation
/usr/doc 目录下包含有大量与特定软件或函数库相关的说明性文档。
POSIX 现在已经发展成为一个非常庞大的标准族,某些部分正处在开发过程中。表 1-1 给出了 POSIX 标准的几个 重要组成部分。POSIX 与 IEEE 1003 和 2003 家族的标准是可互换的。除 1003.1 之外,1003 和 2003 家族也包括在表中。
1-1 POSIX 标准的重要组成部分
1003.0 |
管理 POSIX 开放式系统环境(OSE)。IEEE 在 1995 年通过了这项标准。 ISO 的版本是 ISO/IEC 14252:1996。 |
1003.1 |
被广泛接受、用于源代码级别的可移植性标准。1003.1 提供一个操作系统的 C 语言应 用编程接口(API)。IEEE 和 ISO 已经在 1990 年通过了这个标准,IEEE 在 1995 年 重新修订了该标准。 |
1003.1b |
一个用于实时编程的标准(以前的 P1003.4 或 POSIX.4)。这个标准在 1993 年 被 IEEE 通过,被合并进 ISO/IEC 9945-1。 |
1003.1c |
一个用于线程(在一个程序中当前被执行的代码段)的标准。以前是 P1993.4 或 POSIX.4 的一部分,这个标准已经在 1995 年被 IEEE 通过,归入 ISO/IEC 9945-1:1996。 |
1003.1g |
一个关于协议独立接口的标准,该接口可以使一个应用程序通过网络与另一个应用程序 通讯。 1996 年,IEEE 通过了这个标准。 |
1003.2 |
一个应用于 shell 和 工具软件的标准,它们分别是操作系统所必须提供的命令处理器 和工具程序。 1992 年 IEEE 通过了这个标准。ISO 也已经通过了这个标准(ISO/IEC 9945-2:1993)。 |
1003.2d |
改进的 1003.2 标准。 |
1003.5 |
一个相当于 1003.1 的 Ada 语言的 API。在 1992 年,IEEE 通过了这个标准。 并在 1997 年对其进行了修订。ISO 也通过了该标准。 |
1003.5b |
一个相当于 1003.1b(实时扩展)的 Ada 语言的 API。IEEE 和 ISO 都已经通过了 这个标准。ISO 的标准是 ISO/IEC 14519:1999。 |
1003.5c |
一个相当于 1003.1q(协议独立接口)的 Ada 语言的 API。在 1998 年, IEEE 通过了这个标准。ISO 也通过了这个标准。 |
1003.9 |
一个相当于 1003.1 的 FORTRAN 语言的 API。在 1992 年,IEEE 通过了这个标准, 并于 1997 年对其再次确认。ISO 也已经通过了这个标准。 |
1003.10 |
一个应用于超级计算应用环境框架(Application Environment Profile,AEP)的标准。 在 1995 年,IEEE 通过了这个标准。 |
1003.13 |
一个关于应用环境框架的标准,主要针对使用 POSIX 接口的实时应用程序。 在 1998 年,IEEE 通过了这个标准。 |
1003.22 |
一个针对 POSIX 的关于安全性框架的指南。 |
1003.23 |
一个针对用户组织的指南,主要是为了指导用户开发和使用支持操作需求的 开放式系统环境(OSE)框架 |
2003 |
针对指定和使用是否符合 POSIX 标准的测试方法,有关其定义、一般需求和指导方针的 一个标准。在 1997 年,IEEE 通过了这个标准。 |
2003.1 |
这个标准规定了针对 1003.1 的 POSIX 测试方法的提供商要提供的一些条件。 在 1992 年,IEEE 通过了这个标准。 |
2003.2 |
一个定义了被用来检查与 IEEE 1003.2(shell 和 工具 API)是否符合的测试方法的 标准。在 1996 年,IEEE 通过了这个标准。 |
除了 1003 和 2003 家族以外,还有几个其它的 IEEE 标准,例如 1224 和 1228,它们 也提供开发可移植应用程序的 API。要想得到关于 IEEE 标准的最新信息,可以访问 IEEE 标准的主页,网址是 http://standard.ieee.org/。 有关 POSIX 标准的概述信息,请访问 Web 站点 http://standards.ieee.org/reading/ieee/stad_public/description/posix/。