




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2016.9.21标准I/O库流和file文件:File指针 结构体类型标准I/O库的操作都是围绕流来进行的 用流用 file* 来描述流:文本流:数据以字符出现 “n“ 被转换为 0DH和0AH二进制流:处理的是二进制序列 文件缓存:缓存文件系统(高级磁盘ID):少用read/write的调用分类:全缓存,行缓存,不缓存全缓存:系统通过调用malloc来获得需要的缓存区域,默认值刷新(fflush)行缓存:遇到n时 流遇到一个终端时不带缓存:不对字符进行缓存(etc:stderr)非缓存文件系统(低级磁盘ID):用操作系统来完成用Setbuf()和setvbuf()更改缓存类型 标准I/O库
2、-打开流FILE *Fopen(const char *path,const char *mode) 打开由path(路径)指定的文件 默认会有一个0666的权限Mode的参数:Char *Freopen(const char *restrict pathname, const char *restrict type, FILE *restrict fp)FILE *Fdopen(int filedes, const char *type)Example1-fopen:Example2-freopen:Example3-fdopen关闭流Fclose()调用成功返回0失败返回EOF,并设置er
3、ror标准I/O库-读写流每次一个字符的I/O:int fgetc(FILE *stream)/int fputc(int c, FILE *stream)每次一行的I/O:int fgets(char *s, int size, FILE *stream)/int fputs(const char *s, FILE *stream)直接I/O:size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream) size_t fwrite(const void *ptr, size_t size, size_t nmemb, FIL
4、E *stream)读写流结束判定Int Feof(FILE *stream)判断文件是否结束(可用于二进制)EOF/feof()文件结束时标志实例晚上完善(例程基本上都是在修改while();)字符I/O输入Int Getc(FILE *stream);Int Fgetc(FILE *stream);Int Getchar(void);注:getchar()等价于getc(stdin)出错函数Int Feof(FILE *stream);Int Ferror(FILE *stream);Int Clearerr(FILE *stream);字符I/O输出Int Putc(int c, FIL
5、E *stream);Int Fputc(int c, FILE *stream);Int Putchare(int c);注:Putchar(c)等价于putc(c, stdout)行I/O输入Char *gets(char *s);Char *fgets(char*s, int size, FILE *stream); 行I/O输出Int puts(const char *s);Int fputs(const char*s, FILE *stream);二进制I/OSize_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream
6、);Size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream);标准I/O库-读写流Int Fseek(FILE *stream, long offset, int whence);Long Ftell(FILE *stream);Void Rewind(FILE *stream);注意:rewind()等价于 (void)fseek(stream, 0L, SEEK_SET)Time2016.9.22文件I/O不带缓冲指的是每个read和write都调用内核中的相应系统调用操作函数:Open();Close(
7、);Read();Write();Lseek();文件描述符:对于内核而言,所有打开的文件都由文件描述符引用文件I/O操作三部文件I/O-open()Open可以打开任何文件 包括设备文件但是不能创建设备文件Open的参数Example1:文件I/O-close()文件I/O-read()读操作是从当前位移量开始文件I/O-write()出错原因 : 磁盘已满或超出给定长度对于普通文件来说写操作从当前位移量处开始,如果加了O_APPEND则在当前结尾处;文件I/O-lseek()读写都是从当前位置处开始lseek()只对常规文件有效lseek()仅当前文件的位移量记录在内核中,它并不引起任何I
8、/O操作标准I/O和文件I/O的区别文件和目录获取文件目录的属性信息Stat() 文件名fstat() 文件描述符lstat() 文件名取得文件类型:目录文件普通文件字符特殊文件块特殊文件FIFO套接口符号链接取得文件类型-检测宏:取得文件类型-St_mode定义:取得文件类型-文件存取许可权限:静态库和动态库本质上来说,库是一种可执行代码的二进制形式,可以被操作系统载入内存执行在linux下 库分为:静态库和动态库静态库静态库对函数库的链接是放在编译时期完成的。但是浪费空间和资源。静态库命名规范是 :lib+静态库名+.a#ar crs libmyhello.a hello.o使用静态链接库:#gcc o hello main.c L. lmyhello动态库把对一些库函数的链接载入推迟到程序运行的时期可实现进程之间的资源共享动态库命名规范是 :lib+静态库名+.so#gcc fPLC Wall c hello.c#gcc shared o libmyhello.so hello.o注:-fPLC创建与地址无关的编译程序动态库路径:方式1、把库拷贝到/user/lib和/lib目录下;方式2、在LD_LIBRARY_PATH环境变量中加上库所在的路径方式3、添加/etc/ld.so.conf.d/*
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 东营科技职业学院《大球类课程-足球》2023-2024学年第二学期期末试卷
- 柳州城市职业学院《工程抗震B》2023-2024学年第二学期期末试卷
- 荆州学院《数据结构C》2023-2024学年第二学期期末试卷
- 河南农业职业学院《大学外语(一)》2023-2024学年第二学期期末试卷
- 贵州建设职业技术学院《花鸟》2023-2024学年第二学期期末试卷
- 江西制造职业技术学院《越轨与犯罪社会学》2023-2024学年第二学期期末试卷
- 单元学习任务+如何使议论文论述思路更清晰++教学课件++2024-2025学年高一语文统编版必修下册
- 沈阳药科大学《外国文学(一)》2023-2024学年第二学期期末试卷
- 内蒙古商贸职业学院《数字音频编辑》2023-2024学年第二学期期末试卷
- 苏州市职业大学《数字逻辑与集成设计》2023-2024学年第二学期期末试卷
- GB/T 12467.2-2009金属材料熔焊质量要求第2部分:完整质量要求
- 液压支架阀使用及维修讲课教案课件
- 国家开放大学电大《工程经济与管理》考题及答案
- Unit 4 Developing Ideas 读后续写初探公开课课件 【教材精讲精研】 高中英语外研版(2019)必修第一册
- 智能楼宇管理员(四级)理论考试(重点)题库(含答案)
- 国开期末考试《城市管理学》机考试题及答案(第13套)
- 内蒙古乌海市基本气象特征
- 脉冲编码调制与解调实验报告
- 人教版五年级下册数学找次品表格式教案设计
- 职业安全健康现场检查记录表参考范本
- 《工程勘察设计收费管理规定》计价格【2002】10号(废止)
评论
0/150
提交评论