Provided by: manpages-ja-dev_0.5.0.0.20131015+dfsg-2_all bug

名前

       fexecve - ファイルディスクリプタで指定されたプログラムを実行する

書式

       #include <unistd.h>

       int fexecve(int fd, char *const argv[], char *const envp[]);

   glibc 向けの機能検査マクロの要件 (feature_test_macros(7)  参照):

       fexecve():
           glibc 2.10 以降:
               _XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L
           glibc 2.10 より前:
               _GNU_SOURCE

説明

       fexecve()  は execve(2)  と同じ作業を行う。違うのは、 実行するファイルを、パス名ではなく、
       ファイルディスクリプタ fd を用いて指定する点である。 ファイルディスクリプタ fd  は、読み込
       み専用でオープンされていなければならず、  呼び出し元はファイルディスクリプタが参照するファ
       イルに対する 実行許可を持っていなければならない。

返り値

       fexecve()  は呼び出しに成功した場合、戻ることはない。 エラーの場合、返り値として -1 が返さ
       れ、 errno が適切に設定される。

エラー

       エラーは execve(2)  と同じだが、以下のエラーが追加になっている:

       EINVAL fd が有効なファイルディスクリプタでない。または argv が NULL である。または envp が
              NULL である。

       ENOSYS /proc ファイルシステムにアクセスできなかった。

バージョン

       fexecve()  は glibc 2.3.2 以降で実装されている。

準拠

       POSIX.1-2008.  この関数は POSIX.1-2001 では規定されておらず、 他のシステムで広く利用できる
       わけではない。

注意

       Linux  では、 fexecve()  は proc(5)  ファイルシステムを使って実装されている。 そのため、こ
       の関数を呼び出す時点では /proc がマウントされて利用可能となっている必要がある。

関連項目

       execve(2)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部  である。プロジェクト
       の説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。