Linux环境编程6标准IO库幻灯片课件.pptVIP

  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文档。上传文档
查看更多
Linux环境编程6标准IO库幻灯片课件.ppt

格式化输出修饰符表 6.7 格式化I/O 格式化输出 示例 6.7 格式化I/O float f=123.456; char ch= a; printf(“%f,%8f,%8.1f,%.2f,%.2e\n”,f,f,f,f,f); printf(“%3c\n”,ch); 123.456001,123.456001,□□□123.5,123.46,1.2e+02 □□a static char a[]=“Hello,world!” printf(“%s\n%15s\n%10.5s\n%2.5s\n%.3s\n”,a,a,a,a,a); Hello,world! □□□Hello,world! □□□□□Hello Hello Hel float f=123.456; static char c[]=“Hello,world!”; printf(“%10.2f,%-10.1f\n”,f,f); printf(“%10.5s,%-10.3s\n”,c,c); □□□□123.46,123.5□□□□□ □□□□□Hello,Hel□□□□□□□ 格式化输出 示例 6.7 格式化I/O /* 假设在16位机上,int为两个字节,long为四个字节 */ long a = 65536; printf(%d, %8ld\n, a, a); 0, □□□65536 int a=1234; float f=123.456; printf(“%010.2f\n”,f); printf(“%0+8d\n”,a); printf(“%0+10.2f\n”,f); 0000123.46 +0001234 +000123.46 int a=123; printf(“%o, %#o, %X, %#X\n”,a,a,a,a); 173, 0173, 7B, 0X7B 第6章 标准I/O库 6.1 流和文件指针 流(stream)。 在Linux系统中,文件和设备都可被看作是数据流。 数据流指的是无结构的字节序列。 当用标准I/O库打开或创建一个文件时,即将一个流与一个文件结合起来。 标准I/O库使用一个文件指针(类型为FILE*)来表示流。 FILE结构包含了I/O库为管理该流所需要的所有信息 用于实际I/O的文件描述符 指向流缓存的指针 缓存的长度 当前在缓存中的字符数 出错标志,等等。 在头文件stdio.h中预定义的三个标准I/O流 stdin 标准输入流 STDIN_FILENO stdout 标准输出流 STDOUT_FILENO stderr 标准错误输出流 STDERR_FILENO 目的是尽可能减少使用read和write调用的次数 三种类型 全缓存 当标准I/O缓存填满后才进行实际I/O操作; 在一个流上执行第一次I/O操作时,相关标准I/O函数调用malloc函数分配所需使用的缓存。 刷新(flush):自动刷新或调用fflush()刷新。 行缓存 在输入和输出中遇到换行符时执行实际I/O操作; 当流涉及一个终端时,典型地使用行缓存。 两个限制 行的缓存的长度是固定的,填满就会进行I/O操作; 当要求从一个不带缓存的流或一个行缓存的流得到输入数据时,会造成刷新所有行缓存输出流。 不带缓存 相当于用write系统调用; 标准错误输出流stderr通常是不带缓存的,这就使得出错信息可以尽快显示出来。 6.2 缓存 ANSI C规定: 1, 当且仅当标准输入和标准输出并不涉及交互作用设备时,它们才是全缓存的。 2, 标准错误输出绝对不会是全缓存的。 打开流 使用fopen系列函数可以创建或打开流文件. path 要打开或创建的文件的名称. mode 对该I/O流的读、写方式,ANSI C规定了15种不同的可能值. r或rb 以读方式打开 w或wb 以写方式打开或创建,并将文件长度截为0 a或ab 以写方式打开,新内容追加在文件尾 r+或r+b或rb+ 以更新方式打开(读和写) w+或w+b或wb+ 以更新方式打开,并将文件长度截为0 a+或a+b或ab+ 以更新方式打开,新内容追加在文件尾 #include stdio.h FILE *fopen(const char *path, const char *mode); FILE *fdopen(int fd, const char *mode); FILE *freopen(const char *path, const char *mode, FILE *stream); 6.3 流的打开和关闭 打开流 使用fopen系列函数可以创建或打开流文件. fd 待关联的底层文件描述符. stream 待关联的流文件指针,若该流已打开则会被先关闭. 返回值 成功时返回流

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档