zoukankan      html  css  js  c++  java
  • 标准IO库,主要是流

    1.流的定向:决定了所读的,写的字符是单字节还是多字节,当一个流最初被创建的时候,并没有进行流的重定向,流的重定向取决于第一次的操作,在流上使用一个单字节的I/O函数,则流被设置为字节定向,若宽字节则被设置位多字节

    2:缓冲,在行缓冲中,如果有读一个不带缓冲的流或者一个行缓冲的流,则要进行冲洗输出缓冲区

    setvbuf可以设置缓冲方式,全缓冲,行缓冲,没有缓冲

    3:打开流,

    对于fdopen,type参数的意义则稍有区别。因为该描述符已被打开,所以fdopen写而打开并不截短该文件。 (若

    该描述符原来是由open函数打开的,该文件那时已经存在,则其O_TRUNC标志将决定是否截短该文件。fdopen

    数不能截短它为写而打开的任一文件。)另外,标准 I / O添加方式也不能用于创建该文件(因为如若一个描述符

    引用一个文件,则该文件一定已经存在)。

    流在打开的时候默认的是全缓冲,若引用的是终端设备,则是行缓冲的

    !!!

    当以读和写类型打开一文件时( t y p e中+号),具有下列限制:

    • 如果中间没有ff l u s h、f s e e k、f s e t p o s或r e w i n d,则在输出的后面不能直接跟随输入。

    • 如果中间没有 f s e e k、f s e t p o s或r e w i n d ,或者一个输出操作没有到达文件尾端,则在输入操

    作之后不能直接跟随输出。

    4读和写流

    在读和写流的时候,其实流的缓冲都已经安排好了,在读行的时候比如,fgets(buf,n,fp)buf指的是此函数指

    定的读某个流的数据,并将数据存放在某一个地方,这个缓冲区并不是流的缓冲区

    读和写流有单个字符,每次一行,每次一个结构

    在读和写单个字节的时候,可以将读出来的字符,在送回流中,ungetc(int c, FILE *fp)

    比如说流中有,cab,先读出c,在送回c,则流变成cab~~若先读出c,在送回d,则为dab

    5临时文件








  • 相关阅读:
    9.11 eventbus
    9.10,,,实现new instanceof apply call 高阶函数,偏函数,柯里化
    9.9 promise实现 写完了传到gitee上面了,这里这个不完整
    9.5cors配置代码
    9.5 jsonp 实现
    9.5 http tcp https总结
    9.3 es6 class一部分 and es5 class 发布订阅
    8.30 cookie session token jwt
    8.30vue响应式原理
    warning: LF will be replaced by CRLF in renard-wx/project.config.json. The file will have its original line endings in your working directory
  • 原文地址:https://www.cnblogs.com/SmileLion/p/5863575.html
Copyright © 2011-2022 走看看