dup

dupはファイルディスクリプタを複製する。

Man page of DUP

"test.txt"をopenで開いて、その時のファイルディスクリプタdupに渡すと、新しいファイルディスクリプタが返される。
そのファイルディスクリプタも"test.txt"を指すので、複製といえる。

"ABC"を古いファイルディスクリプタに、"DEF"を新しいファイルディスクリプタに書き込む。

$ vi dup.c
$ gcc dup.c -o dup
$ ./dup
oldfd = 3
newfd = 4
$ ls
dup  dup.c  test.txt
$ cat test.txt
ABCDEF$

両方とも"test.txt"に順に書き込まれた。

Sample/unixsyscall/dup/dup/src/dup at master · bg1bgst333/Sample · GitHub