zoukankan      html  css  js  c++  java
  • dup与dup2

    dup与dup2

    #include <unistd.h>
    
    int dup(int oldfd);
    /*
    oldfd: 要复制的文件描述符
    返回值: 新的文件描述符
    dup调用成功: 有两个文件描述符指向同一个文件
    返回值: 取最小的且没被占用的文件描述符
    */
    int dup2(int oldfd, int newfd);
    /*
    文件描述符的重定向
    oldfd->haha
    newfd->hehe
    	假设newfd已经指向了一个文件, 首先断开新的close与那个文件的链接, newfd指向oldfd指向的文件
    	newfd没有被占用, newfd指向oldfd指向的文件
    */
    

    改变已经打开的文件的属性

    #include <unistd.h>
    #include <fcntl.h>
    
    int fcntl(int fd, int cmd, ... /* arg */ );
    

    变参数函数

    复制一个已经有的文件描述符
    int ret = fcntl(fd, F_DUPFD);

    获取/设置文件状态标志
    open的flags参数
    (1)获取文件状态标识
    int flag = fcntl(fd, F_GETFL);
    (2)设置文件状态标识
    flag = flag | O_APPEND;
    fcntl(fd, F_SETFL, flag)

    常用的可以更改的几个标识: O_APPEND, ONONBLOCK

  • 相关阅读:
    React网络请求fetch之get请求
    英语学习
    人物传记
    四月
    启程
    情绪
    办公新址
    孩子大了
    幸福的生日
    hibernate---树状映射
  • 原文地址:https://www.cnblogs.com/hesper/p/10739060.html
Copyright © 2011-2022 走看看