ファイルディスクリプター

読み:ファイルディスクリプター
外語:fd: file descriptor 英語
品詞:名詞

ファイル識別子のこと。

目次

アプリケーションファイルを使用する際、オペレーティングシステム(OS)側がどのファイルかを識別するのに用いる情報。

OSによって内容は異なるが、この情報にはファイル名やパス名、ファイルサイズ、現在の(読み込み中の)位置などファイルアクセスに必須となる情報のほか、作成・更新日付などの付帯情報が含まれることもある。

比較的新しいOSなどではファイルハンドルといい、ファイルディスクリプター+バッファー管理その他をまとめた管理構造体になっている。

UNIX

UNIXおよび互換環境、その影響下にあるC言語系言語では、ファイルディスクリプターは0から始まる数値である。

このうち、0、1、2は順に標準入力(stdin)、標準出力(stdout)、標準エラー出力(stderr)が割り当てられており、実際には3から順に割り当てられていくことになる。

UNIXのC言語では、unistd.hにおいて、プリプロセッサーシンボルSTDIN_FILENO、STDOUT_FILENO、STDERR_FILENO、が定義されている。

fdからファイル名を得る

LinuxFreeBSDなどUNIX互換の環境で、procfsを用いてfdからファイル名を得るには、次のようにする。

const size_t SIZE = 256;
char pathname[SIZE];
char buf[SIZE+1];
snprintf(pathname, SIZE, "/proc/%d/fd/%d", getpid(), fd);
ssize_t len = readlink(pathname, buf, SIZE);
if (len > 0) {
    if ((size_t(len) > ((sizeof KEY_SOUND_FILE_PATH - 1) + (sizeof KEY_SOUND_FILE_EXT - 1))) &&
        (size_t(len) <= SIZE)) {
        buf[len] = '\0';
        //hogehoge
    }
}

コメントなどを投稿するフォームは、日本語対応時のみ表示されます


KisoDic通信用語の基礎知識検索システム WDIC Explorer Version 7.04a (27-May-2022)
Search System : Copyright © Mirai corporation
Dictionary : Copyright © WDIC Creators club