IO课程总结前天.docVIP

  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文档。上传文档
查看更多
Day01 标准IO 标准IO 文件IO 高级磁盘IO,ANSI C标准 低级磁盘IO,POSIX C标准 带缓冲机制 不带缓冲机制 通过流来操作 文件描述符 typedef struct _IO_FILE FILE; 练习1 打印出程序运行时,默认打开的三个流的文件描述符. 缓冲机制总共三种: 全缓冲4k fopen打开的文件默认都是全缓冲 行缓冲1k stdin stdout 无缓冲 stderr 文件类型7种: b c d – l s p Block char directory regular link socket p fifo 文件系统类型 磁盘文件系统: 网络文件系统:nfs samba 虚拟文件系统: 一个进程预定义了三个流:标准输入、标准输出、标准出错。分别用文件描述符STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO分别表示他们,用流指针stdin、stdout、stderr可以加以引用。在 中定义的。 fopen path, “r” “r”:只读 文件必须存在 “r+”:读写 文件必须存在 “w”:只写 存在:清空(覆盖原先文件内容)需对文件有写权限 不存在:新建 需对目录有写权限 “w+”;读写 对原先文件的读写不行,因为被覆盖掉 “a”; 只写 存在:不覆盖,append追加在文件末尾 不存在:新建 “a+”;读写 fclose fp 读写: 按字符读写 fgetc/fputc 按行读写 fgets gets/fputs puts 按指定大小读写 fread、fwrite fread buf, sizeof char , 对象的个数,fp 读取对象的个数 定位问题 fseek fp, offset, whence offset:偏移量,正向后,负向前 which:基准点,三个宏 SEEK_SET SEEK_CUR SEEK_END fgetc+计数器 SEEK_END的值即是 fseek返回值-表示成功,-1L表示失败 long ftell(fp) 成功返回当前文件位置,出错则为-1L rewind Day02文件IO 程序record_time.c 文件IO:在打开管道、设备文件中广泛应用 比标准IO应用范围广 系统调用是内核的一部分,是安全的接口; C库函数:是实现好的函数, 提高移植性, 程序员只需要关注函数的接口即可。 一、文件IO的概念 不带缓冲区,读写都会引起磁盘IO,定位不一定都需要磁盘IO 文件IO不是标准C的规范,是POSIX规范 通过文件描述符fd来访问, 是个非负数 0~1023(默认情况) fd只是标识一个程序打开的文件,每次分配的是最小可用的,是一个程序内部进行标号。 与标准IO对比:通过fp流指针 二、文件IO函数 1、int open path, int flags, … 参数是可变的 A 功能:打开、创建普通文件(可打开但不能创建管道和设备文件) B、参数 (1)path:文件路径 (2)flags:打开的方式 O_RDONLY 只读方式 O_WRONLY 只写方式 O_RDWR 读写方式 以上三种打开方式互斥,必须存在且只能存在一个 O_CREAT 创建时需要第三个参数 O_TRUNC O_APPEND O_EXCL (3)mode:创建的文件权限 创建的时候多一个参数:0666 需与权限掩码进行运算 C、返回值:成功 0 文件描述符; 失败-1,并设置errno 比较文件IO和标准IO的打开方式 fopen argv[1],”r” open argv[1],O_RDONLY fopen argv[1],”r+” open argv[1], O_RDWR fopen argv[1],”w” open argv[1], O_WRONLY|O_TRUNC|O_CREAT, 0666 fopen argv[1],”w+” open argv[1], O_RDWR|O_TRUNC|O_CREAT, 0666 fopen argv[1],”a” open argv[1], O_WRONLY|O_APPEND|O_CREAT, 0666 fopen argv[1],”a+” open argv[1], O_RDWR||O_APPEND|O_CREAT, 0666 2、close int fd 关闭 返回值:成功为0; 失败为-1, 一般返回值不处理 进程终止时, 该进程打开的所有都自动关闭 char buf[N] 3、read fd, buf, size 返回值:实际读取的字节数 一定要保存read函数的返回值 0 :实际读取的字节数 0 :读到文件末尾

文档评论(0)

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

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

1亿VIP精品文档

相关文档