.SSH:UNIX-UNIX环境高级编程3.pdfVIP

  1. 1、本文档共19页,可阅读全部内容。
  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文档。上传文档
查看更多
下载 第3章 文 件 I / O 3.1 引言 本章开始讨论U N I X系统,先说明可用的文件I / O 函数——打开文件、读文件、写文件等等。 大多数U N I X文件I / O 只需用到5个函数:o p e n 、r e a d 、w r i t e 、lseek 以及c l o s e 。然后说明不同缓 存器长度对r e a d和w r i t e 函数的影响。 本章所说明的函数经常被称之为不带缓存的 I / O (u n b u ffered I/O ,与将在第5章中说明的标 准I / O 函数相对照)。术语——不带缓存指的是每个r e a d 和w r i t e 都调用内核中的一个系统调用。 这些不带缓存的I / O 函数不是ANSI C 的组成部分,但是是P O S I X . 1和X P G 3 的组成部分。 只要涉及在多个进程间共享资源,原子操作的概念就变成非常重要。我们将通过文件 I / O 和传送给o p e n 函数的参数来讨论此概念。并进一步讨论在多个进程间如何共享文件,并涉及内 核的有关数据结构。在讨论了这些特征后,将说明 d u p 、f c n t l和i o c t l 函数。 3.2 文件描述符 对于内核而言,所有打开文件都由文件描述符引用。文件描述符是一个非负整数。当打开 一个现存文件或创建一个新文件时,内核向进程返回一个文件描述符。当读、写一个文件时, 用o p e n或c r e a t返回的文件描述符标识该文件,将其作为参数传送给 r e a d或w r i t e 。 按照惯例,UNIX shell 使文件描述符0与进程的标准输入相结合,文件描述符 1与标准输出 相结合,文件描述符2与标准出错输出相结合。这是UNIX shell 以及很多应用程序使用的惯例, 而与内核无关。尽管如此,如果不遵照这种惯例,那么很多 U N I X应用程序就不能工作。 在P O S I X . 1应用程序中,幻数 0 、1、2应被代换成符号常数 S T D I N _ F I L E N O、S T D O U T _ F I L E N O和S T D E R R _ F I L E N O。这些常数都定义在头文件 u n i s t d . h 中。 文件描述符的范围是 0 ~ O P E N _ M A X (见表2 - 7 ) 。早期的U N I X版本采用的上限值是 1 9 (允许 每个进程打开2 0个文件) ,现在很多系统则将其增加至6 3 。 S V R 4和4 . 3 + B S D对文件描述符的变化范围没有作规定,它只受到系统配置的 存储器的总量、整型字的字长以及系统管理员所配置的软性或硬性限制的约束。 3.3 open 函数 调用o p e n函数可以打开或创建一个文件。 #include sys/types.h #include sys/stat.h #include fcntl.h int open(const char *p a t h n a m e , int o f l a g ,.../*, mode_tm o d e * / ) ; 返回:若成功为文件描述符,若出错为- 1 我们将第三个参数写为 . . . ,这是ANSI C 说明余下参数的数目和类型可以变化的方法。对 3 6 U N I X环境高级编程 下载 于o p e n 函数而言,仅当创建新文件时才使用第三个参数。(我们将在稍后对此进行说明。)在函 数原型中此参数放置在注释中。 p a t h n a m e 是要打开或创建的文件的名字。o f l a g参数可用来说明此函数的多个选择项。用下 列一个或多个常数进行或运算构成o f l a g参数(这些常数定义在 f c n t l . h 头文件中) : • O_RDONLY 只读打开。 • O_WRONLY 只写打开。 • O_RDWR 读、写打开。 很多实现将O _ R D O N LY定义为0 ,O _ W R O N LY定义为1,O _ R D W

文档评论(0)

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

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

1亿VIP精品文档

相关文档