- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
04_标准io库,标准io库和无缓冲io库,linux标准io库,unix标准io库,c标准io库,标准io,文件io和标准io,标准io函数,linux标准io,标准io文件io
标准IO库 标准IO库概述 标准IO库是于1975年左右编写完成的 标准IO库可以在很多操作系统下移植 经过30多年,标准IO库没有发生什么重大变化 流和FILE对象 基本IO是针对文件描述符的,而标准IO是基于流的。当通过标准IO打开或者创建文件的时候,系统使用一个流和文件相关联。在Unix环境中,标准IO库是建立在基本IO基础之上的 标准IO库中的流以FILE *的形式表现,各种标准IO库函数使用 为了增加对国际化的支持,最新的标准IO库增加了对宽字符的支持 标准输入、标准输出和标准错误 按照惯例,Unix进程使用三个默认的文件描述符,分别是STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO 标准IO库中预定义了三个流stdin, stdout, stderr,可以自动被进程使用,分别是标准输入、标准输出和标准错误。它们引用的文件和STDIN_FILENO, STDOUT_FILENO, STDERR_FILENO指向的文件相同 缓冲 标准IO库通过调用read/write系统调用来实现真正的IO 为了减少调用read/write的次数,标准IO库提供了缓冲 注意,这个缓冲是在用户态的 有3种类型的缓冲 全缓冲 行缓冲 不缓冲 可以通过setbuf函数对指定的流设置缓冲类型 ISO C规定 当且仅当stdin/stdout不涉及交互设备时,它们才是全缓冲 stderr决不会是全缓冲的 默认的 stderr是不带缓冲的 其他流,如果涉及到终端设备,则是行缓冲的,否则是全缓冲的 和缓冲相关的几个函数 设置流的缓冲void setbuf(FILE *fp, char *buf);int setvbuf(FILE *fp, char *buf, int mode, size_t size); 强制刷新流缓冲int fflush(FILE *fp); 打开流 FILE *fopen(char *pathname, char *type); FILE *freopen(char *pathname, char *type, FILE *fp); FILE *fdopen(int filedes, char *type); 打开方式 r 为读而打开 w 把文件截短为0长,为写而创建 a 为在文件末尾写而打开,或为写创建 r+ 为读和写而打开 w+ 把文件截短为0长,为读和写而创建 a+ 为在文件末尾写而打开或创建 还可以加上“b”,表示以二进制方式打开,但Unix内核并不区分字符文件和二进制文件,这个标志无意义 关闭流 int fclose(FILE *fp); 读流 int fgetc(FILE *fp);int getchar(); //= fgetc(stdin); int ferror(FILE *fp);int feof(FILE *fp);void clearerr(FILE *fp); ungetc(int c, FILE *fp); 写流 int fputc(int c, FILE *fp);int putchar(c); // fputc(c, stdout); 每次一行IO 输入一行char *fgets(char *buf, int n, FILE *fp);char *gets(char *buf); 输出一行int fputs(char *str, FILE *fp);int puts(char *str); 二进制IO size_t fread(void *ptr, size_t size, size_t nobj, FILE *fp); size_t fwrite(void *ptr, size_t size, size_t nobj, FILE *fp); 定位流 返回当前文件位置long ftell(FILE *fp); 定位到指定位置int fseek(FILE *fp, long offset, int whence); void rewind(FILE *fp); 格式化输出 int printf(char *format, ...); int fprintf(FILE *fp, char *format, ...); int sprintf(char *buf, char *format, ...); int snprintf(char *buf, size_t n, char *format, ...); 格式字符串 %[flags][width][precision][length]type flags: 对齐、填0等控制 width: 输出宽度 pr
您可能关注的文档
最近下载
- 2025至2030全球及中国普拉提和瑜伽馆行业市场深度研究及发展前景投资可行性分析报告.docx VIP
- 极速60秒.ppt VIP
- 中国宠物行业白皮书.doc VIP
- 项目插花艺术-全校公选课.doc VIP
- 极速60秒的图片.ppt VIP
- 展频IC规格书之 SSDCI1108AF _REV3.1.pdf VIP
- 2024 CCF非专业级别软件能力认证(CSP-S)第一轮真题.pdf VIP
- TCFNA6104-2022 食品安全-月桂叶(香叶).pdf VIP
- 人美版(2024)小学美术一年级上册《欢快流畅的线》教学设计 .pdf VIP
- 三水平立井多绳摩擦式提升机提升钢丝绳更换安全技术措施:.doc VIP
文档评论(0)