例题习题用到LinuxC库函数.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
open (打开 文件) 相关函数 read, write, fcntl, close, link, stat, umask, unlink, fopen 表头文件 #includesys/types. h #includesys/stat. h #includefcntl. h 定义函数 int open( const char * pathname, int flags); int open( const char * pathname, int flags, mode_t mode); 函数说明参数pathname指向欲打廿的文件路径字符串。下列是参数flags所能使 用的旗标: O_RDONLY以只读方式打开文件 OJVRONLY以只写方式打开文件 0_RDWR以可读写方式打开文件。上述三种旗标是互斥的,也就是不可同时 使用,但可与下列的旗标利用0R(|)运算符组合。 O_CREAT若欲打开的文件不存在则自动建立该文件。 O_EXCL如果O_CREAT也被设置,此指令会去检查文件是否存在。文件若不 存在则建立该文件,否则将导致打开文件错误。此外,若O_CREAT与O_EXCL 同时设置,并且欲打开的文件为符号连接,则会打开文件失败。 O_NOCTTY如果欲打幵的文件为终端机设备时,则不会将该终端机当成进程 控制终端机。 0_ope若文件存在并且以可写的方式打开时,此旗标会令文件长度清为0, 而原来存于该文件的资料也会消失。 O_APPEND当读写文件时会从文件尾开始移动,也就是所写入的数据会以附 加的方式加入到文件后面。 O_NONBLOCK以不可阻断的方式打开文件,也就是无论有无数据读取或等 待,都会立即返回进程Z屮。 0_NDELAY 同 O.NONBLOCKo O_SYNC以同步的方式打开文件。 0_N0F0LL0W如果参数pathname所指的文件为一符号连接,则会令打开文 件失败。 O_DTRECTORY如果参数pathname所指的文件并非为一目录,则会令打开文 件失败。 此为Linux2. 2以后特有的旗标,以避免一些系统安全问题。 参数mode则有下列数种组合,只有在建立新文件时才会牛效,此外真正建 文件时的权限会受到umask值所影响,因此该文件权限应该为 (mode-umaks)。 S_IRWXU00700权限,代表该文件所有者具有可读、可写及可执行的权限。 S_IRUSR或S_IREAD, 00400权限,代表该文件所有者具有可读取的权限。 S.IWUSR或S_IWRITE, 00200权限,代表该文件所冇者具冇可写入的权限。 S IXUSR或S TEXEC, 00100权限,代表该文件所有者具有可执行的权限。 S_IRWXG 00070权限,代表该文件用户组具有可读、可写及可执行的权限。 S.IRGRP 00040权限,代表该文件用户组具有可读的权限。 S.1WGRP 00020权限,代表该文件用户组具有可写入的权限。 S.IXGRP 00010权限,代表该文件用户组具有可执行的权限。 S_IRWX0 00007权限,代表其他用户具有可读、可写及可执行的权限。 S_IR0TH 00004权限,代表其他用户具有可读的权限 S_IW0TH 00002权限,代表其他用户具有可写入的权限。 S.IXOTII 00001权限,代表其他用户具冇可执行的权限。 返回值若所有欲核查的权限都通过了检查则返回0值,表示成功,只要有一个权 限被禁止则返回-1。 错误代码EEXIST参数pathname所指的文件己存在,却使用了 O.CREAT与O_EXCL旗 标。 EACCESS参数pathname所指的文件不符合所要求测试的权限。 EROFS欲测试写入权限的文件存在于只读文件系统内。 EFAULT参数pathname指针超出可存取内存空间。 EINVAL参数mode不正确。 ENAMETOOLONG 参数 pathname 太长。 ENOTDIR参数pathname不是目录。 EN0MEM核心内存不足。 ELOOP参数pathname有过多符号连接问题。 EI0 I/O存取错误。 附加说明使用access()作用户认证方面的判断要特别小心,例如在access 0后再作 open ()空文件可能会造成系统安全上的问题。 范例 #includeunistcL h #includesys/types. h #includesys/stat. h #includefcntl. h main () { int fd, size; char s []二” Linux Programmer! \n, buffer [80]; fd=open( “/tmp/tcmp” , OJVRONLY|O_CREAT); write(fd,

文档评论(0)

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

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

1亿VIP精品文档

相关文档