zoukankan      html  css  js  c++  java
  • Unix高级编程之标准IO

    c标准io---带缓存的io

    优势:
    带缓存(合并系统调用)
    缺点:
    实时性低
    缓存的类型:
    行缓存:stdin stdout(缓存区是有大小)
    全缓存:文件
    无缓存:stderr

    1.流
    打开文件的标识

    2.FILE类型
    结构体类型:
    文件描述符
    缓存区的地址
    缓存的大小


    出错标识

    3.流的打开
    fopen(3);

    errno全局变量
    定义的宏:
    /usr/include/asm-generic/errno-base.h
    /usr/include/asm-generic/errno.h
    strerror(3);
    perror(3);


    4.流的操作(读写)
    <1>字节
    fgetc();/fputc();
    getchar();/putchar();
    getc();/putc();
    <2>按行
    fgets();/fputs();
    gets();/puts();
    <3>二进制
    fread();/fwirte();
    <4>格式化
    fscanf();/fprintf();
    scanf();/printf();

    5.流的定位
    fseek();
    ftell();
    rewind();

    6.流的关闭
    fclose(3);

    7.流的刷新
    fflush(3);

    8.临时文件
    tmpnam();//了解
    tmpfile();//掌握

    9.io效率
    讨论的不是缓存大小的影响
    标准io在调用fopen()时就已经创建缓存区
    优先选择:
    fgets();/fputs();
    fread();/fwrite();
    10.
    setbuf();
    setvbuf();

    作业:
    将一个文件的第5行的最开始加入一个字符串"uplooking"

    有时候,不小心知道了一些事,才发现自己所在乎的事是那么可笑。
  • 相关阅读:
    定时器QTimer
    QDoubleSpinBox浮点型数字调节框
    pyqt5-步长调节器
    字体选择框QFontComboBox
    组合框-下拉选择框QCombox
    复选框QCheckBox
    CMake学习记录--list(列表操作命令)
    CMake命令之list
    make的link_directories命令不起作用
    Linux平台用C++实现事件对象,同步线程
  • 原文地址:https://www.cnblogs.com/axjlxy/p/5859935.html
Copyright © 2011-2022 走看看