IO

一. IO的基础:

  1. 认识内核对象

    不允许访问内核设备和内存,但可以通过内核系统函数去访问

    对每个内核对象进行编号ID

    如果访问内核对象,只能通过ID。

    编程模型:

      申请得到一个ID,在内核系统函数中使用ID得到对应的内核对象

  2. 怎么访问文件

    使用函数,传递一个文件,系统打开文件,加载文件数据,返回一个ID。使用函数,传递一个ID得到数据,使用函数传递ID, 告诉系统释放文件。

    ID: 文件描述符号。 file description(fd)

    每个程序执行的时候都有一个目录,存放打开的文件描述符

  3. 每个程序可以默认打开3个文件设备:

    0:标准输入

    1:标准输出

    2:错误输入

  4. 操作文件描述符号

    size_t  write(int fd,  

           void *buf, //要写入内核对象的数据

           size_t size); //写入数据大小

    返回: >0 实际写入数据的大小

        -1 写入错误

    size _t read(int fd,  

           void * buf, //返回数据的空间

           size_t size);//空间大小

    返回: >0 实际读取的数据

        =0 碰到文件结束符号EOF

        -1 读取错误

    建议: 0 输入, 1输出, 2 错误

二.  基于文件的描述符号

  1. 得到文件描述符号/释放文件描述符号

    a. 文件类型

      目录文件d

      普通文件f

      字符设备文件c

      块设备文件b

      软连接文件l

      管道文件p

      socket文件

    b. 文件的属性

  2. 通过文件描述符号读写各种数据

  3. 文件描述符号与重定向

posted on 2013-08-09 19:24  冰尨  阅读(102)  评论(0)    收藏  举报

导航