zoukankan      html  css  js  c++  java
  • Linux 标准输入输出_11

    标准输入输出是基于标准输入输出库实现的。
     知识点大纲 『
      *1 标准输入输出的基本操作,包括文件的打开与关闭,缓冲区的操作等。
      *2 非格式化输入输出, 包括单个字节,字符串(行)以及数据块的输入输出。
      *3 格式化输入输出。
     』
    -11.1 标准输入输出的基本操作
     标准输入输出操作是通过控制结构 FILE 进行。
      文件控制结构中包含处理文件所需的全部信息,例如文件名,文件当前的读写位置,用于该文件读写的内存缓冲区位置等。打开文件时,系统会在内存中自动建立该文件的控制结构。关闭文件时,文件控制结构被释放。在对文件进行操作之前,要首先获取文件的指针,即指向文件控制结构的指针,后续操作都通过该指针进行。
     标准输入输出时,有 3 个比较特殊的文件,如下 :
     *1 标准输入文件(stdin) : 一般为键盘
     *2 标准输出文件(stdout): 一般为显示器
     *3 标准错误输出文件(stderr) : 一般为显示器
     -11.1.1 文件的打开
       #include <stdio.h>
       FILE *fopen(const char *filename, const char *modes);
       例如 : FILE *fp; fp = fopen("./hello.c", "r");
     -11.1.2 文件的关闭
       对文件操作完成后,应该关闭文件,进而释放文件所占用的系统资源。关闭后,文件指针将不再有效。
       #include <stdio.h>
       int fclose(FILE *fp);
     -11.1.3 缓冲区的刷新
      #include <stdio.h>
      int fflush(FILE *fp); 写入到磁盘文件或者输出到用户终端。
      int fpurge(FILE *fp); 清空缓冲区。
     -11.1.4 缓冲区属性的设置   (缓冲区的大小和类型都可以通过函数来设置)
      *1 全缓冲 *2 行缓冲 *3 无缓冲
      #include <stdio.h>
      int setvbuf(FILE *fp, char *buf, int mode, size_t size);
    -11.2 非格式化输入输出
     -11.2.1 单个字节输入输出
       int fgetc(FILE *fp);
     -11.2.2 字符串输入输出
       char *fgets(char *s, int n, FILE *fp);
     -11.2.3 数据块的输入输出
       size_t fread (void *ptr, size_t size, size_t n, FILE *fp);
       size_t fwrite(void *ptr, size_t size, size_t n, FILE *fp);
    -11.3 格式化的输入输出
      int fprintf(FILE *fp, const char *format, ...);
  • 相关阅读:
    高德引擎构建及持续集成技术演进之路
    Java的传值调用
    Java中真的只有值传递么?
    Centos7启动防火墙时报错Failed to start IPv4 firewall with iptables
    Redis入门(四)-Java操作Redis
    SecureCRT远程连接The remote system refused the connection问题
    [需求设计]从一个小需求感受Redis的独特魅力
    Oracle报错ORA-12516 TNS:listener could not find available handler with matching protocol stack
    编译Netty源码遇到的一些问题-缺少io.netty.util.collection包
    Linux使用alias自定义命令自定义快捷键
  • 原文地址:https://www.cnblogs.com/robbychan/p/3786966.html
Copyright © 2011-2022 走看看