dup/dup2

Header Files

#include <unistd.h>

Function Prototype

int dup(int filedes);
int dup2(int filedes, int newfiledes);

Explanation

這兩個 system call 都能幫我們將一個 file descriptor 指向 filedes 這個 file descriptor 指向的 open file table 物件

不同的是:

  • dup 是自動選擇一個目前還空著的 file descriptor
  • dup2則是我們指定要用哪一個 file descriptor

因為是指向 open file table 物件,所以就算 close 掉舊的 file descriptor,用 dup 分配的新 file descriptor 也還可正常運作