Linux开发:dup, dup2, dup3

时间:2024-03-25 15:31:18

Linux开发:open打开文件-CSDN博客

Linux开发:多进程通过open同时读取文件-CSDN博客

介绍了打开一个文件会获得一个文件描述符,该文件描述符指向内核中打开文件的描述表的一个位置,而该位置记录了当前打开文件的一些信息

dup系列api的主要用途是为指定的文件描述符复制/指定一个新的描述符,使得新旧文件描述符指向内核中打开文件的描述表的同一个位置。因此新旧文件描述符会共享当前文件偏移量。

1.dup

#include <unistd.h>
int dup(int oldfd);

参数说明:
    oldfd:旧的文件描述符

返回值:
    如果失败返回-1,如果复制成功,返回一个新的文件描述符,新的文件描述符将使用最小的可用文件描述符

新旧文件描述符共享offset:

#include <unistd.h>
#include <iostream>
#include <fcntl.h>
using namespace std;

void doDu