- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux程序设计-第2章概要
嵌入式操作系统应用开发--Linux程序设计 陈晓雷 第2章标准输入输出 2.1 UNIX 输入输出基本概念 2.2 流和FILE对象 2.3 打开和关闭流 2.4 读和写流 2.5 文件定位 2.6 文件结束和错误指示器 2.7 流缓冲 2.8 格式I/O 2.9 临时文件 * 2.1 UNIX 输入输出基本概念 IO操作—广义文件 两种处理方法: 文件描述字—底层、系统功能调用、API函数 流—高层、带缓冲、标准C(ANSI/ISO) 1.文件描述字与流 int fd; FILE *fp; 2.文件名与路径名 FHS 3.文件位置 2.2 流和FILE对象 FILE数据类型由系统(标准C)定义 FILE对象由标准I/O库函数内部分配和管理 用户程序通过文件指针(FILE*)引用 3个标准流:stdin、stdout、stderr stdio.h * 2.3 打开和关闭流 #include stdio.h FILE*fopen(const char *pathname,const char *opentype); int fclose(FILE *stream); FILE*fopen(const char *pathname,const char *opentype, FILE *stream); 例:p2-1.c * #include ch02.h” int main(void) { FILE *stream; char buf[80]; printf(open and creat test_file\n); if ((stream = fopen(test_file,w)) == NULL ) err_exit(open() failed); printf(write string to test_file\n); fputs(Hello world,stream); /* 输出字符串至终端 */ if ((stream = freopen(test_file,r,stream)) == NULL ) err_exit(open() failed); printf(read string from test_file\n); fgets(buf, sizeof(buf), stream); /* 从终端读入一行字符串 */ printf(the string is \%s\\n, buf); fclose(stream); } * 2.4 读和写流 2.4.1 字符I/O 输入:fgetc、getc、getchar 输出:fputc、putc、putchar 函数原型 例:p2-2.c 2.4.2 行I/O fgets、gets、getline 例:p2-3.c fputs、puts * 2.4 读和写流 2.4.3 读回退 int ungetc(int c,FILE*stream); p2-4.c 2.4.4 块I/O size_t fread(viod *data,size_t size,size_t count,FILE*stream); size_t fwrite(const viod *data,size_t size,size_t count,FILE*stream); 例:p2_5.c * 2.5 文件定位 #include stdio.h long int ftell(FILE *stream); int fseek(FILE *stream,long int offset, int whence); void rewind(FILE *stream); int fgetpos(FILE *stream, fpos_t *pos); int fsetpos(FILE *stream, const fpos_t *pos); 例:p2_6.c * 2.6 文件结束和错误指示器 EOF 流对象内部的两个标志:错误、文件结束 int ferror(FILE *stream); int feof(FILE *stream); void clearerr(FILE *stream); 例:p2_7.c * 2.7 流缓冲 IO的缓冲处理方式 3种缓冲类型 全缓冲 行缓冲 无缓冲 UNIX流的默认缓冲类型 stderr—无缓冲 交互设备—行缓冲 其它—全缓冲 * 2.7 流缓冲 设置自己的缓存区及类型 void setbuf(FILE *stream, char buf); void setvbu
文档评论(0)