标准IO和文件IO复习

文件IO和标准IO区别

标准IO 文件IO
标准库 系统调用
带缓冲的IO 不带缓冲(内核缓冲)
通过流操作文件 通过文件描述符操作文件
高级IO 低级IO

标准IO

1. linux文件类型(7种)

bcd-lsp 块设备、字符设备、目录、普通、链接、套接字、管道

2. 缓冲区

文件流指针 FILE*

  1. 无缓冲
    stderr

  2. 行缓冲

    • stdin/stdout
    • 缓冲大小为1024byte
    • 刷新条件:
      • 遇到’\n’
      • 溢出时
  3. 全缓冲

    • 缓冲大小为4Kb
    • 刷新条件:
      • 关闭时(fclose)
      • 溢出时
      • fflush

3. 流

1. 开关
  • fopen
    • r/r+/rb+/rt+
    • w/w+/wb+/wt+
    • a/a+/ab+/at+
  • fclose
模式 作用
r 只读,文件必须存在,流在文件开头
w 只写,文件不存在创建,流在文件开头
a 只写,文件不存在创建,流在文件末尾
+ 读写
b 二进制文件
t 文本文件
2. 读写
  • 按字符操作 fgetc/fputc
  • 按行操作 fgets/fputs
  • 按块操作 fread/fwrite
  • 格式化输入输出
    • printf/fprintf/sprintf
    • scanf/fscanf/sscanf
3. 刷新
  • fflush
4. 移动流指针
  • fseek
  • ftell
  • rewind
5. 判断是否到文件末尾
  • feof
    • 检查流,如果到达文件末尾返回非零值

文件IO

1.文件描述符

  • 最小的未用非负整数,其实是一个索引/一个下标
  • 0 1 2 对应标准IO的 stdin stdout stderr

2.开关

  • open
    • umask 文件权限掩码
      • 使用时:mode &~ umask
  • close
    • 不可多次关闭同一个文件描述符
功能
O_RDONLY 只读模式
O_WRONLY 只写模式
O_RDWR 读写模式
O_CREAT 创建文件
O_EXCL 报错
O_TRUNC 文件若是O_RDWR O_WRONLY 将被截断长度为0

3.读写

  • read
  • write

4.指针偏移

  • sleek

文件和目录

  1. 文件
    • stat
    • fstat
    • lstat
  2. 目录
    • opendir
    • readdir
    • chdir

你可能感兴趣的:(IO和进程线程)