• dup/dup2函数


    原子操作(automic operation)指的是由多步组成的操作。如果该操作原子的执行,则要么执行完所有步骤,要么一步也不执行,不可能只执行所有步骤的一个子集。

    向打开文件时设置O_APPEND标志的文件写入是原子操作。内核每次对这种文件进行写之前,都将进程的当前偏移量设置到该文件的尾端处。

    O_EXCL | O_CREAT 是一个原子操作。如果文件已存在,则出错。否则,创建文件。


    dup/dup2两个函数都用于复制一个现存的文件描述符:

    #include<unistd.h>
    int dup(int filedes);
    int dup2( int filedes, int filedes2);

    两函数的返回值:若成功则返回新的文件描述符,若出错则返回 -1

    由dup返回的新文件描述符一定是当前可用文件描述符的最小数值。用 dup2 则可以用 filedes2参数指定新描述符的数值。如果filedes2 已经打开,则先将其关闭。如果 filedes 等于 filedes2 ,则dup2 返回 filedes2,而不关闭它。

    两个函数返回的新文件描述符与参数 filedes 共享同一个文件表项。

  • 相关阅读:
    域环境的搭建 (超级详细)
    sqli-labs(10)
    sqli-labs(9)
    mysql源码安装(5.1)
    查看mysql apache php nginx的编译参数
    LAMP的安装
    Mysql的安装(二进制免编译包) 5.1版本
    更改yum网易 阿里云的yum源。
    yum安裝的包如何保留到本地
    磁盘分区
  • 原文地址:https://www.cnblogs.com/ly01/p/4598724.html
Copyright © 2020-2023  润新知