长风破浪会有时,直挂云帆济沧海

Dream Word

博客园 首页 新随笔 联系 订阅 管理

pcb:结构体

  一个进程由一个文件描述符表:1024,前三个占用,文件描述符作用,需要磁盘文件。

1:open、close

  int open(const char* pathname,int flags);

  int open(const char* pathname,int flags,mode_t mode);

  参数:

    flags:

      必选项O_RDONLY,O_WRONLY,O_RDWR

      可选项:

        I:创建文件:O_CREAT

          创建文件时检测文件是否存在:O_EXCL

          如果文件存在,返回-1

          必须与O_CREAT一起使用

        II:追加文件:O_APPEND

        III:文件截断:O_TRUNC

        IV:设置非阻塞:O_NONBLOCK

     mode:

        mode & ~umash

2:read

  函数原型:ssize_t read(int fd,void *buf, size_t count)

  参数:fd: open的返回值

     buf 缓冲区 存储要读取的数据

     count:缓冲区能存储的最大字节数 sizeof(buf)

  返回值: 

     -1:失败

     成功:

        >0 :读出的字节数

        =0:文件读完了

3:write

  函数原型:ssize_t write(int fd, const void* buf, size_t count)

  参数:

    fd:

    buf:

    count:strlen(buf),有效字节数

  返回值:

    -1: 失败

    >0:  写入到文件的字节数

 

4:lseek

  函数原型:off_t lseek(int fd, off_t offset, int whence);

5:阻塞和非阻塞

  阻塞和非阻塞是文件属性还是read函数的属性

  

posted on 2018-03-25 20:31  长风II  阅读(162)  评论(0编辑  收藏  举报