08 第八章 UNIX系统接口 C语言程序设计 第二版.pdfVIP

08 第八章 UNIX系统接口 C语言程序设计 第二版.pdf

  1. 1、本文档共17页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
08 第八章 UNIX系统接口 C语言程序设计 第二版.pdf

C语言程序设计 第八章 UNIX系统接口 第8章 UNIX 系统接口 UNIX 操作系统通过一系列的系统调用提供服务,这些系统调用实际上是操作系统内的函 数,它们可以被用户程序调用。 章将介绍如何在 C 语言程序中使用一些重要的系统调用。 如果读者使用的是UNIX , 章将会对你有直接的帮助,这是因为,我们经常需要借助于系统 调用以获得最高的效率,或者访问标准库中没有的某些功能。但是,即使读者是在其它操作 系统上使用C 语言, 章的例子也将会帮助你对C 语言程序设计有更深入的了解。不同系统 中的代码具有相似性,只是一些细节上有 别而已。因为ANSI C 标准函数库是以UNIX 系统 为基础建立起来的,所以,学习 章中的程序还将有助于更好地理解标准库。 章的内容包括 3 个主要部分,输入/输出、文件系统和存储分配。其中,前两部分的 内容要求读者对UNIX 系统的外部特性有一定的了解。 第 7 章介绍的输入/输出接口对任何操作系统都是一样的。在任何特定的系统中,标准 库函数的实现必须通过宿主系统提供的功能来实现。接下来的几节将介绍 UNIX 系统中用于 输入和输出的系统调用,并介绍如何通过它们实现标准库。 8.1. 文件描述符 在 UNIX 操作系统中,所有的外围设备 (包括键盘和显示器)都被看作是文件系统中的 文件,因此,所有的输入/输出都要通过读文件或写文件完成。也就是说,通过一个单一的 接口就可以处理外围设备和程序之 的所有通信。 通常情况下,在读或写文件之前,必须先将这个意图通知系统,该过程称为打开文件。 如果是写一个文件, 可能需要先创建该文件,也可能需要丢弃该文件中原先已存在的内容。 系统检查你的权力 (该文件是否存在?是否有访问它的权限?),如果一切正常,操作采统将 向程序返回一个小的非 整数,该整数称为文件描述符。任何时候对文件的输入/输出都是 通过文件描述符标识文件,而不是通过文件名标识文件。(文件描述符类似于标准库中的文件 指针或MS-DOS 中的文件句柄。)系统 责维护已打开文件的所有信息,用户程序只能通过文 件描述符引用文件, 因为大多数的输入/输出是通过键盘和显示器来实现的,为了方便起见,UNIX 对此做了 特别的安排。当命令解释程序 (即“shell ”)运行一个程序的时候,它将打开3 个文件,对应 的文件描述符分别为0,1,2,依次表示标准输入,标准输出和标准错误。如果程序从文件0 中读,对1 和2 进行写,就可以进行输/输出而不必关心打开文件的问题。 程序的使用者可通过和重定向程序的I/O : prog 输入 件名 输出 件名 这种情况下,shell 把文件描述符0 和 1 的默认赋值改变为指定的文件。通常,文件描述符2 仍与显示器相关联,这样,出错信息会输出到显示器上。与管道相关的输入/输出也有类似 的特性。在任何情况下,文件赋值的改变都不是由程序完成的,而是由shell 完成的。只要程 序使用文件0 作为输入,文件 1 和2 作为输出,它就不会知道程序的输入从哪里来,并输出 By阴风 共 275 页 第 141 页 C语言程序设计 第八章 UNIX系统接口 到哪里去。 8.2. 低级I/O——read 和write 输入与输出是通过read和write系统调用实现的。在C 语言程序中,可以通过函数read 和write 访问这两个系统调用。这两个函数中,第一个参数是文件描述符,第二个参数是程 序中存放读或写的数据的字符数组,第三个参数是要传输的字节数。 int n_read = read (int fd, char *buf, int n); int n_written = write (int fd, char *buf, int n); 每个调用返回实际传输的字节数。在读文件时,函数的返回值可能会小于

文档评论(0)

wwvfz702 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档