网站大量收购独家精品文档,联系QQ:2885784924

文件与IO操作.pptVIP

  1. 1、本文档共90页,可阅读全部内容。
  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文档。上传文档
查看更多
文件与IO操作

* 有许多函数可能改变errno的值。它的值只有在函数调用失败时才有意义。你必须在函数表明失败之后立刻对其进行检查。在使用它之前,你应该总是将它拷贝到另一个变量中,因为像fprintf这样的输出函数本身就可能改变errno的值。 * dirent结构中包含的目录数据项内容包括以下部分: l ino_t d_ino——文件的inode节点号。 l char d_name[]——文件的名字。 * 和紧急程度来设置.优先级 * perror(打印出错误原因信息字符串) 相关函数 strerror表头文件 #includestdio.h定义函数 void perror(const char *s);函数说明 perror()用来将上一个函数发生错误的原因输出到标准错误(stderr)。参数s所指的字符串会先打印出,后面再加上错误原因字符串。此错误原因依照全局变量errno的值来决定要输出的字符串。返回值 ?范例 #includestdio.h main() { FILE *fp; fp = fopen(“/tmp/noexist”,”r+”); if(fp = =NULL) perror(“fopen”); }执行 $ ./perror fopen : No such file or diretory  ??? strerror(返回错误原因的描述字符串) 相关函数 perror表头文件 #includestring.h定义函数 char * strerror(int errnum);函数说明 strerror()用来依参数errnum的错误代码来查询其错误原因的描述字符串,然后将该字符串指针返回。返回值 返回描述错误原因的字符串指针。范例 /* 显示错误代码0 至9 的错误原因描述*/ #includestring.h main() { int i; for(i=0;i10;i++) printf(“%d : %s\n”,i,strerror(i)); } 文件处理时间 Field Description Example ls option st_atime 文件访问最后时间 read -u st_mtime 文件最后修改的时间 write default st_ctime i-node结点最后修改时间 chmod, chown -c Linux文件权限 9个权限位 rwxr-xr-- (read, write, execute) 三个组别 User (or owner) Group Other (or world) “chmod” 改变权限 文件权限判断 文件权限位和类型也保留在st_mode当中.可以用位与的方法来取得权限位 if((buf.st_mode S_IRUSR) == S_IRUSR) printf(r); else printf(-); if((buf.st_mode S_IWUSR) == S_IWUSR) printf(w); else printf(-); if((buf.st_mode S_IXUSR) == S_IXUSR) printf(x); else printf(-); 用系统调用设置权限 在open(), creat(), and umask()权限设置 st_mode mask Meaning 对应值 S_IRUSR user-read 00400 S_IWUSR user-write 00200 S_IXUSR user-execute 00100 S_IRGRP group-read 00040 S_IWGRP group-write 00020 S_IXGRP group-execute 00010 S_IROTH other-read 00004 S_IWOTH other-write 00002 S_IXOTH other-execute 00001 access 当前进程是否某个权限 ? access(判断是否具有存取文件的权限) 相关函数 stat,open,chmod,chown,setuid,setgid 表头文件 #includeunistd.h 定义函数 int access(const char * pathname,int mode); 函数说明 access()会检查是否可以读/写某一已存在的文件。参数mode有几种情况组合,R_OK,W_OK,X_OK 和F_OK。R_OK,W_OK与X_OK用来检查文件是否具有读取、写入和执行的权限。F_OK则是用来判断该文件是否存在。由于access()只作 权限的核查,并不理会文件

文档评论(0)

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

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

1亿VIP精品文档

相关文档