1 fwide函数试图设置流的定向(流的定向决定了读写单字节还是多字节字符)

int fwide(FILE *fp,int mode)
                  宽定向返回正值,字节定向返回负值,为定向返回0

                   已定向流不会改变流的定向

2 setbuf函数中指定的缓冲区的长度为BUFSIZ,这个常量在stdio.h中定义

3 freopen和fdopen函数

FILE *freopen(char *pathname,const char *type,FILE *fp)
FILE *fdopen(int filedes,const char *type)

3 gets和fgets、puts和fputs函数

char *fgets(char *buf,int n,FILE *fp)

char *gets(char *buf)

int fputs(const char *str,FILE *fp)

int puts(const char *str)

gets函数无法指定缓冲区长度,可能导致写到缓冲区之后的存储空间中
puts函数会添加一个换行符

4 二进制I/O

size_t fread(void *buf,size_t size,size_t n,FILE *fp)

size_t fwrite(const void *ptr,size_t size,size_t n,FILE *fp)

5 定位流
流中的位置可以用long、off_t、fpos_t三种类型表示,对应有三种定位、设置流当前位置的函数

long:

long ftell(FILE *fp)

int fseek(FILE *fp,long offset,int whence)

off_t:

off_t ftell(FIEL *fp)

int fseeko(FILE *fp,off_t offset,int whence)

pos_t:

int fgetpos(FILE *fp,fpos_t *pos)

int fsetpos(FILE *fp,const fpos_t *pos)

6 格式化I/O

格式化输出:printf、fprintf、sprintf、snprintf(相比于sprintf,可以指定缓冲区长度n,超出长度将溢出)

      vprintf、vfprintf、vsprintf、vsnprintf

格式化输入:scanf、fscanf、sscanf

      vscanf、vfscanf、vsscanf

第5章标准I/O库总结的更多相关文章

  1. UNIX环境高级编程 第5章 标准I/O库

    本章是关于C语言标准I/O库的,之所以在UNIX类系统的编程中会介绍C语言标准库,主要是因为UNIX和C之间具有密不可分的关系.由于UNIX系统存在很多实现,而每个实现都有自己的标准I/O库,为了统一 ...

  2. 《UNIX环境高级编程》(APUE) 笔记第五章 - 标准I/O库

    5 - 标准I/O库 Github 地址 1. 标准 I/O 库作用 缓冲区分配 以优化的块长度执行 I/O 等 使用户不必担心如何选择使用正确的块长度 标准 I/O 最终都要调用第三章中的 I/O ...

  3. UNIX系统高级编程——第五章-标准I/O库-总结

    基础: 标准I/O库在ANSI C中定义,可移植在不同的系统 文件指针(FILE):标准I/O库操作的不是文件描述符,而是流.FILE文件指针包含的是维护流所需的信息 通过函数fileno获取流的文件 ...

  4. APUE之第5章——标准I/O库

    一.知识回顾:文件I/O 文件 I/O 是不带缓冲的 I/O(unbuffered I/O),指每个 read 和 write 都调用内核中的一个系统调用. 对于内核而言,所有打开的文件都通过文件描述 ...

  5. 《APUE》-第五章标准IO库

    大多数UNIX应用程序都使用I/O库,本章说明了该库所包含的所有函数,以及某些实现细节和效率方面的考虑.同时需要重点关注标准I/O使用了缓冲的技术,但同时也是因为它的出现,产生了很多细节上的问题. 流 ...

  6. C++ Primer 读书笔记: 第8章 标准IO库

    第8章 标准IO库 8.1 面向对象的标准库 1. IO类型在三个独立的头文件中定义:iostream定义读写控制窗口的类型,fstream定义读写已命名文件的类型,而sstream所定义的类型则用于 ...

  7. 第五章:标准I/O库

    本章用于解析C语言标准I/O库,之所以在UNIX类系统的编程中会介绍C语言标准库,主要是因为UNIX和C之间具有密不可分的关系. 标准I/O库相比于操作系统的I/O库,具有更高的效率和可移植性,前者是 ...

  8. 第3章 文件I/O(8)_贯穿案例:构建标准IO函数库

    9. 贯穿案例:构建标准IO函数库 //mstdio.h #ifndef __MSTDIO_H__ #define __MSTDIO_H__ #include <unistd.h> #de ...

  9. UNIX环境高级编程笔记之标准I/O库

    一.总结 文件I/O一章讲了不带缓冲的I/O,本章讲的是带缓冲的I/O.不带缓冲针对的是内核的系统调用,而带缓冲针对的是用户空间的标准库函数,是基于带缓冲的I/O实现的.不带缓冲的I/O通过文件描述符 ...

随机推荐

  1. hdu5601-N*M bulbs(黑白棋盘染色)

    一个矩形,一个人从左上角走到右下角,每走过一个位置把0变成1,1变成0. 求有没有可能他离开之后所有的数都是0 假设这个矩形是一个棋盘,黑白相间. 这样会发现从一个颜色走到相同颜色可以对棋盘不产生任何 ...

  2. PC-IIS因为端口问题报错的解决方法

    1.我的电脑-管理-服务和应用程序-Internet信息服务  情况:这时发现“默认 SMTP 虚拟服务器”停止  解决方法:右击启动  情况:发现网页还是打不开.2.Internet信息服务-网站- ...

  3. iOS网络编程(三) 异步加载及缓存图片---->SDWebImage

    @SDWebImage提供一个UIImageView的类别以支持加载来自网络的远程图片.具有缓存管理.异步下载.同一个URL下载次数控制和优化等特征. @SDWebImage的导入1.https:// ...

  4. zepto下动画返回顶部

     function scroll(scrollTo, time) {                var scrollFrom = parseInt(document.body.scrollTop) ...

  5. redis缓存技术

    初学redis缓存技术,如果文章写得不好还请谅解 应用环境:win7 实现环境:cmd,eclipse redis缓存技术的特点就在于高效,因为目前涉及的数据量逐渐增多,在对于数据的存储上面和sql以 ...

  6. javaweb之Filter详解(转)

    .概念: Filter也称之为过滤器,它是Servlet技术中比较激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源: 例如Jsp, Servlet, 静态图片文件 ...

  7. apache+php+mysql最新版windows下

    卸载以前的Apache 1.控制面板先卸载 2.删除E:\Program Files (x86)\Apache Software Foundation下的apache目录 一.安装apache 1.c ...

  8. HDU2001java

    import java.util.*;import java.text.DecimalFormat;class Main{public static void main(String args[]){ ...

  9. 微信小程序的一些限制

    小程序的一些限制: 不支持HTML.没有 Dom.网页用的 JS.CSS 基本要全部重写,WXML 的语法和 HTML 差异还挺大,基本是一个个照着手册的属性去改.CSS 选择器不支持级联. 小程序源 ...

  10. Punycode与中文互转

    Punycode是一个根据RFC 3492标准而制定的编码系统,主要用于把域名从地方语言所采用的Unicode编码转换成为可用于DNS系统的编码 "中文域名"不被标准的解析服务器支 ...