zoukankan      html  css  js  c++  java
  • 二:C标准库文件I/O函数

    1open函数:

    #include <unistd.h>

    int open(char *pathname, int flags)

    参数:

    pathname: 欲打开的文件路径名

    flags:文件打开方式:

    #include <fcntl.h> 

    O_RDONLY|O_WRONLY|O_RDWR

    O_CREAT|O_APPEND|O_TRUNC|O_EXCL|O_NONBLOCK ....

    返回值

    成功: 打开文件所得到对应的 文件描述符(整数)

    失败: -1, 设置errno

    int open(char *pathname, int flagsmode_t mode) 123  775

    参数:

    pathname: 欲打开的文件路径名

    flags:文件打开方式:

    O_RDONLY|O_WRONLY|O_RDWR  O_CREAT|O_APPEND|O_TRUNC|O_EXCL|O_NONBLOCK ....

    mode: 参数3使用的前提, 参2指定了O_CREAT 取值8进制数,用来描述文件的 访问权限。 rwx  0664 

    创建文件最终权限 = mode & ~umask

    返回值:

    成功: 打开文件所得到对应的 文件描述符(整数)

    失败: -1, 设置errno

    2close函数:

    strerror, strerror_r - return string describing error number

    3错误处理函数:与 errno 相关。

    printf("xxx error: %d ", errno);

    char *strerror(int errnum);

    printf("xxx error: %s ", strerror(errno));

    void perror(const char *s);

       perror("open error");

    4read函数:

    ssize_t read(int fd, void *buf, size_t count);

    参数:

    fd:文件描述符

    buf:存数据的缓冲区

    count:缓冲区大小

    返回值:

    0:读到文件末尾。

    成功; > 0 读到的字节数。

    失败: -1, 设置 errno

    -1: 并且 errno = EAGIN EWOULDBLOCK, 说明不是read失败,而是read在以非阻塞方式读一个设备文件(网络文件),并且文件无数据。

    5write函数:

    ssize_t write(int fd, const void *buf, size_t count);

    参数:

    fd:文件描述符

    buf:待写出数据的缓冲区

    count:数据大小

       返回值:

    成功; 写入的字节数。

    失败: -1, 设置 errno

    6)预读入缓输出

     

    用户空间-》内核空间进行反复切换读写数据,系统调用没有设置缓冲区,用户空间调用fread()函数一般有用户缓冲区的默认为4096.

  • 相关阅读:
    Kafka
    js操作json
    Javascript的console.log()用法
    js中的instanceof运算符
    JS阻止事件冒泡的3种方法之间的不同
    js string to date
    JavaScript RegExp.$1
    JS正则表达式大全
    js data日期初始化的5种方法
    javascript和jquey的自定义事件小结
  • 原文地址:https://www.cnblogs.com/love-life-insist/p/14110723.html
Copyright © 2011-2022 走看看