fdesc(5) FreeBSD 一般コマンドマニュアル

fdesc

前のページ 上に戻る 次のページ

fdesc




解説

     ファイル記述子ファイルシステム、別名 fdesc は、プロセス毎のファイル記述子
     の名前空間をグローバルなファイルシステムの名前空間からアクセスする機能を
     提供します。通常のマウントポイントは /dev であり、 /dev の既存のエントリ
     を置き換えるのではなく重ね合わせるために、ファイルシステムを union マウン
     トする必要があります。

     マウントポイントの内容は fd, stderr, stdin, stdout および tty です。

     fd はディレクトリで、その中身は、番号で表したファイルのリストとして見えま
     す。これらのファイルは、ディレクトリを読むプロセスが現在オープンしている
     ファイルに対応しています。 /dev/fd/0 から /dev/fd/# までのファイルは記述
     子への参照であり、ファイルシステムを通じてアクセスすることができます。
     ファイル記述子がオープンされていて、ファイルをオープンしたときのモードが
     既存の記述子のモードのサブセットである場合は、システムコール呼び出し

           fd = open("/dev/fd/0", mode);

     と、システムコール呼び出し

           fd = fcntl(0, F_DUPFD, 0);

     は等価です。

     ファイル /dev/stdin, /dev/stdout および /dev/stderr/dev/fd サブディレ
     クトリの対応するエントリへのシンボリックリンクとなります。これらをオープ
     ンするのは、以下のシステムコール呼び出しと等価です。

           fd = fcntl(STDIN_FILENO,  F_DUPFD, 0);
           fd = fcntl(STDOUT_FILENO, F_DUPFD, 0);
           fd = fcntl(STDERR_FILENO, F_DUPFD, 0);

     open(2) 呼び出し時のフラグは O_RDONLY, O_WRONLY および O_RDWR 以外は無視
     されます。

     /dev/tty エントリはカレントプロセスの制御端末への間接参照です。これは見か
     け上は名前つきパイプ (FIFO) ですが、本物の制御端末デバイスと全く同じ振舞
     いをします。


関連ファイル

     /dev/fd/#
     /dev/stdin
     /dev/stdout
     /dev/stderr
     /dev/tty


関連項目

     tty(4), mount_fdesc(8)


歴史

     fdesc ファイルシステムは 4.4BSD で最初に登場しました。 fdesc マニュアルペ

ABELNET VPSサービス