日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
EXEC(3) FreeBSD ライブラリ関数マニュアル EXEC(3) 名称 execl, execlp, execle, exect, execv, execvp, execvP -- ファイルを実行する ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <unistd.h> extern char **environ; int execl(const char *path, const char *arg, ... /*, (char *)0 */); int execlp(const char *file, const char *arg, ... /*, (char *)0 */); int execle(const char *path, const char *arg, ... /*, (char *)0, char *const envp[] */); int exect(const char *path, char *const argv[], char *const envp[]); int execv(const char *path, char *const argv[]); int execvp(const char *file, char *const argv[]); int execvP(const char *file, const char *search_path, char *const argv[]); 解説 exec 関数ファミリは、現在のプロセスイメージを新しいプロセスイメージで置き 換えます。このマニュアルページに記述された関数は、関数 execve(2) のための フロントエンドです。(現在のプロセスの置き換えに関する詳細な情報について は、execve(2) のためのマニュアルページを参照してください。) これらの関数のための最初の引数は、実行されるファイルのパス名です。 execl(), execlp() と execle() 関数の const char *arg と続く省略は、arg0, arg1, ..., argn と考えることができます。ともに、それらは、実行されたプロ グラムに利用可能な引数リストを表しているヌル文字で終了する文字列への 1 つ 以上のポインタのリストを記述します。慣例により、最初の引数は、実行されて いるファイルと関連したファイル名を指すべきです。引数のリストは、NULL ポイ ンタによって終了されなければなりません。 exect(), execv(), execvp() と execvP() 関数は、新しいプログラムに利用可能 な引数リストを表しているヌル文字で終了する文字列へのポインタの配列を提供 します。慣例により、最初の引数は、実行されているファイルに関連したファイ ル名を指すべきです。ポインタの配列は、NULL ポインタによって終了されなけれ ばなりません。 また、execle() と exect() 関数は、引数リストの引数のリストまたは追加の引 数の argv 配列へのポインタを終了する NULL ポインタが続く実行されたプロセ スの環境を指定します。この追加の引数は、ヌル文字で終了する文字列へのポイ ンタの配列であり、NULL ポインタによって終了されなければなりません。他の関 数は、現在のプロセスの外部変数 environ から新しいプロセスイメージのための 環境を取ります。 これらの関数のいくつかには、特別なセマンティクスがあります。 関数 execlp(), execvp() と execvP() は、指定されたファイル名がスラッシュ ``/'' 文字を含んでいないなら、実行形式ファイルを検索してシェルの動作を複 製します。execlp() と execvp() のために、検索パスは、``PATH'' 変数によっ て環境で指定されたパスです。この変数が指定されないなら、デフォルトのパス は、``/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin'' に設 定される <paths.h> の _PATH_DEFPATH 定義にしたがって設定されます。 execvP() のために、検索パスは、関数への引数として指定されます。さらに、特 定のエラーは、特別に扱われます。 エラーがあいまいであるなら (簡単にするために、ここであいまいとなる ENOEXEC を除いて、すべてのエラーと見なしますが、クリティカルエラー EACCES だけが実際にあいまいです)、これらの関数は、あたかもそれらのファイルが存在 して、適切に実行パーミッションがあるかどうかを決定するためにファイルの状 態を調べる (stat) ように動作します。そうするなら、それらは、execve() に よって設定された値に復旧されたグローバル変数 errno で直ちに返ります。そう でなければ、検索は、継続されます。検索が成功せずに execve() を実行を完了 するか、またはエラーのために終了するなら、これらの関数は、適切な実行パー ミッションで少なくとも 1 つのファイルが見つかったかどうかにしたがって、 EACCES または ENOENT に設定されたグローバル変数 errno で返ります。 ファイルのヘッダが認識されないなら (試みられた execve() が ENOEXEC を返 す)、これらの関数は、その最初の引数としてファイルのパスでシェルを実行しま す。(この試みが失敗するなら、さらなる検索は、行われません。) 関数 exect() は、有効にされたプログラムのトレース機能でファイルを実行しま す (ptrace(2) を参照)。 戻り値 exec() 関数のいずれかが返るなら、エラーが、起こっています。返り値は、-1 であり、グローバル変数 errno は、エラーを示す値に設定されます。 関連ファイル /bin/sh シェル。 互換性 歴史的に、execlp() と execvp() 関数のためのデフォルトのパスは、 ``:/bin:/usr/bin'' でした。これは、システムのセキュリティを強化するために カレントディレクトリを削除するように変更されました。 ファイルを実行する試みの間に起こったエラーのとき、execlp() と execvp() の 振る舞いは、まったく歴史的な慣行ではなく、伝統的に文書化されず、POSIX 規 格によって明記されていません。 伝統的に、関数 execlp() と execvp() は、上記に記述されたもの、と数秒ス リープした後に、それらを再試行する ETXTBSY、とそれらが返される ENOMEM と E2BIG を除いてすべてのエラーを無視しました。それらは、現在 ETXTBSY のため に返り、存在と実行可能性をより慎重に決定します。特に、パス接頭辞のアクセ ス可能でないディレクトリのための EACCES は、もはや、適切でない実行パー ミッションがあるファイルのための EACCES と混同されません。4.4BSD で、それ らは、EACCES, ENOENT, ENOEXEC と ETXTBSY を除いてすべてのエラーで返りま す。これは、パス接頭辞のためのエラーの無視を中断するので、伝統的なエラー 処理より劣っていました、そして、異常であいまいなエラー EFAULT と異常なエ ラー EIO の処理のみを改善します。振る舞いは、sh(1) の振る舞いと一致するよ うに変更されました。 エラー execl(), execle(), execlp(), execvp() と execvP() 関数は、失敗し、ライブ ラリ関数 execve(2) と malloc(3) で明記されたエラーのいずれかが errno に設 定されます。 exect() と execv() 関数は、ライブラリ関数 execve(2) で明記されたエラーの いずれかが errno に設定されます。 関連項目 sh(1), execve(2), fork(2), ktrace(2), ptrace(2), environ(7) 規格 execl(), execv(), execle(), execlp() と execvp() 関数は、IEEE Std 1003.1-1988 (``POSIX.1'') に適合しています。execvP() 関数は、FreeBSD 5.2 ではじめて登場しました。 FreeBSD 11.4 January 5, 2016 FreeBSD 11.4