LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 5 years have passed since last update.

dup(2)

Last updated at Posted at 2015-04-04

dup

ファイル・ディスクリプタのコピー


#include <unistd.h>

int dup(int oldfd);
int dup2(int oldfd, int newfd);


dup


int dup(int oldfd);

引数

oldfd
 コピー元になるファイル・ディスクリプタ。

戻り値

 新しい番号をもつファイル・ディスクリプタのコピー。
 エラーの場合-1。


 あたらにコピーとして作成されるファイル・ディスクリプタは未使用のディスクリプタで最小の番号。
コピー元、新しいコピーディスクリプタは同じディスクリプタを参照している。
よって、ファイル状態など、一方に加えた変更は他方に影響する。
ただしClose On Execフラグは共有されないことに注意。

dup2


int dup2(int oldfd, int newfd);

引数

oldfd

 コピー元のファイル・ディスクリプタ。
無効なファイル・ディスクリプタが指定された場合、失敗する。
 その場合newfdはクローズされない。

newfd

 利用したいディスクリプタの番号を指定。
 oldfdと同じ番号の場合、なにもせず、newfdを返す。

戻り値

 新しい番号をもつファイル・ディスクリプタのコピー。
 エラーの場合-1。

newfdがオープン済みの場合、暗黙的にクローズされてから、再利用される。
この再利用処理はアトミックに行われる。

0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up