OSDN Git Service

(split) LDP: Update releases based on LDP 3.52 release
[linuxjm/LDP_man-pages.git] / release / man3 / exec.3
1 .\" Copyright (c) 1991 The Regents of the University of California.
2 .\" All rights reserved.
3 .\"
4 .\" %%%LICENSE_START(BSD_4_CLAUSE_UCB)
5 .\" Redistribution and use in source and binary forms, with or without
6 .\" modification, are permitted provided that the following conditions
7 .\" are met:
8 .\" 1. Redistributions of source code must retain the above copyright
9 .\"    notice, this list of conditions and the following disclaimer.
10 .\" 2. Redistributions in binary form must reproduce the above copyright
11 .\"    notice, this list of conditions and the following disclaimer in the
12 .\"    documentation and/or other materials provided with the distribution.
13 .\" 3. All advertising materials mentioning features or use of this software
14 .\"    must display the following acknowledgement:
15 .\"     This product includes software developed by the University of
16 .\"     California, Berkeley and its contributors.
17 .\" 4. Neither the name of the University nor the names of its contributors
18 .\"    may be used to endorse or promote products derived from this software
19 .\"    without specific prior written permission.
20 .\"
21 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 .\" ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31 .\" SUCH DAMAGE.
32 .\" %%%LICENSE_END
33 .\"
34 .\"     @(#)exec.3      6.4 (Berkeley) 4/19/91
35 .\"
36 .\" Converted for Linux, Mon Nov 29 11:12:48 1993, faith@cs.unc.edu
37 .\" Updated more for Linux, Tue Jul 15 11:54:18 1997, pacman@cqc.com
38 .\" Modified, 24 Jun 2004, Michael Kerrisk <mtk.manpages@gmail.com>
39 .\"     Added note on casting NULL
40 .\"
41 .\"*******************************************************************
42 .\"
43 .\" This file was generated with po4a. Translate the source file.
44 .\"
45 .\"*******************************************************************
46 .TH EXEC 3 2010\-09\-25 GNU "Linux Programmer's Manual"
47 .SH 名前
48 execl, execlp, execle, execv, execvp, execvpe \- ファイルを実行する
49 .SH 書式
50 \fB#include <unistd.h>\fP
51 .sp
52 \fBextern char **environ;\fP
53 .sp
54 \fBint execl(const char *\fP\fIpath\fP\fB, const char *\fP\fIarg\fP\fB, ...);\fP
55 .br
56 \fBint execlp(const char *\fP\fIfile\fP\fB, const char *\fP\fIarg\fP\fB, ...);\fP
57 .br
58 \fBint execle(const char *\fP\fIpath\fP\fB, const char *\fP\fIarg\fP\fB,\fP
59 .br
60 \fB ..., char * const \fP\fIenvp\fP\fB[]);\fP
61 .br
62 \fBint execv(const char *\fP\fIpath\fP\fB, char *const \fP\fIargv\fP\fB[]);\fP
63 .br
64 \fBint execvp(const char *\fP\fIfile\fP\fB, char *const \fP\fIargv\fP\fB[]);\fP
65 .br
66 \fBint execvpe(const char *\fP\fIfile\fP\fB, char *const \fP\fIargv\fP\fB[],\fP
67 .br
68 \fB char *const \fP\fIenvp\fP\fB[]);\fP
69 .sp
70 .in -4n
71 glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7)  参照):
72 .in
73 .sp
74 \fBexecvpe\fP(): _GNU_SOURCE
75 .SH 説明
76 \fBexec\fP()  ファミリーの関数は現在のプロセスイメージを新しいプロセスイメージで置き 換える。このマニュアルで説明されている関数は
77 \fBexecve\fP(2)  のフロントエンドである。 (現在のプロセスイメージの置き換えについての詳細は \fBexecve\fP(2)
78 のマニュアルを参照)
79 .PP
80 これらの関数の最初の引き数は、実行されるファイルの名前である。
81 .PP
82 The \fIconst char\ *arg\fP and subsequent ellipses in the \fBexecl\fP(),
83 \fBexeclp\fP(), and \fBexecle\fP()  functions can be thought of as \fIarg0\fP,
84 \fIarg1\fP, \&..., \fIargn\fP.  Together they describe a list of one or more
85 pointers to null\-terminated strings that represent the argument list
86 available to the executed program.  The first argument, by convention,
87 should point to the filename associated with the file being executed.  The
88 list of arguments \fImust\fP be terminated by a NULL pointer, and, since these
89 are variadic functions, this pointer must be cast \fI(char\ *) NULL\fP.
90 .PP
91 関数 \fBexecv\fP(), \fBexecvp\fP(), \fBexecvpe\fP()  は、利用可能な引き数リスト (NULL で終端された文字列への
92 ポインタの配列) を新しいプログラムに渡す。 慣習として、最初の引き数は実行されるファイル名へ のポインタにする。ポインタの配列は必ず NULL
93 で終わらなければならない。
94 .PP
95 関数 \fBexecle\fP(), \fBexecvpe\fP()  では、呼び出し元が引き数 \fIenvp\fP
96 経由実行されるプログラムの環境を指定することができる。 \fIenvp\fP 引き数は、NULL で終端された文字列へのポインタの配列であり、 NULL
97 ポインタで終わらなければならない。 他の関数では、呼び出し元のプロセスの外部変数 \fBenviron\fP から新しいプロセス用の環境を与える。
98 .SS "execlp() と execvp() の特別な動作"
99 .PP
100 関数 \fBexeclp\fP(), \fBexecvp\fP(), \fBexecvpe\fP()  は、指定されたファイル名がスラッシュ (/) を含んでいない場合、
101 シェルと同じ動作で実行可能なファイルを探索する。 ファイルの検索は、環境変数 \fBPATH\fP
102 で指定されたコロン区切りのディレクトリのパス名のリストを対象に行われる。 この変数が定義されていない場合、パス名のリストのデフォルト値として、
103 カレントディレクトリの後ろに、 \fIconfstr(_CS_PATH)\fP が返すディレクトリのリストをつなげた値が使用される (この
104 \fBconfstr\fP(3)  の呼び出しでは通常 "/bin:/usr/bin" が返される)。
105
106 指定されたファイル名がスラッシュを含む場合、 \fBPATH\fP は無視され、指定されたパス名のファイルが実行される。
107
108 さらに、いくつかのエラーは特別に処理される。
109
110 ファイルが実行ファイルでない場合 (このとき呼び出そうとした \fBexecve\fP(2)  はエラー \fBEACCES\fP
111 で失敗する)、これらの関数は残りの検索パスの検索を続ける。 他にファイルが見つからなくなった場合 \fIerrno\fP に \fBEACCES\fP
112 を設定し復帰する。
113
114 ファイルのヘッダが実行形式として認識できない場合 (このとき呼び出そうとした \fBexecve\fP(2)  はエラー \fBENOEXEC\fP
115 で失敗する)、これらの関数はそのファイルを最初の引き数としたシェル (\fI/bin/sh\fP)  を実行する
116 (これにも失敗した場合、これ以上の検索は行われない)。
117 .SH 返り値
118 \fBexec\fP()  群の関数が復帰するのは、エラーが発生した場合のみである。 返り値は \-1 で、 \fIerrno\fP にエラーの内容がセットされる。
119 .SH エラー
120 これら全ての関数は失敗する場合がある。その場合、 \fBexecve\fP(2)  に対して規定されたエラーが \fIerrno\fP に設定される。
121 .SH バージョン
122 \fBexecvpe\fP()  関数は glibc 2.11 で初めて登場した。
123 .SH 準拠
124 POSIX.1\-2001, POSIX.1\-2008.
125
126 \fBexecvpe\fP()  関数は GNU による拡張である。
127 .SH 注意
128 Linux 以外のシステムには、 (環境変数 \fBPATH\fP が定義されていないときの)  デフォルトのパスにおいて、カレント・ディレクトリが
129 \fI/bin\fP と \fI/usr/bin\fP の後ろに配置されるものもある。 これはトロイの木馬対策のためである。 Linux
130 では、デフォルトのパスに、昔ながらの「現在のディレクトリを 先に探索」というルールを使っている。
131 .PP
132 ファイルを実行しようとしている間にエラーが発生した時の \fBexeclp\fP()  と \fBexecvp\fP()
133 のふるまいについて歴史的な慣習はあるが、伝統的に文書として記載されておらず、 POSIX 標準でも規定されていない。BSD (またおそらく他のシステム)
134 では、 \fBETXTBSY\fP が発生した場合、自動的に中断 (sleep) し再試行を行う。 Linux
135 はそれをハードエラーとして取り扱い即座に復帰する。
136 .PP
137 伝統的に、関数 \fBexeclp\fP()  と \fBexecvp\fP()  は、上で説明したエラーと、これら 2 つの関数自身が返す \fBENOMEM\fP と
138 \fBE2BIG\fP 以外の全てのエラーを無視していたが、 今では、上で説明した以外のエラーが発生した場合でも、 返ってくるよう変更された。
139 .SH 関連項目
140 \fBsh\fP(1), \fBexecve\fP(2), \fBfork\fP(2), \fBptrace\fP(2), \fBfexecve\fP(3),
141 \fBenviron\fP(7)
142 .SH この文書について
143 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.52 の一部
144 である。プロジェクトの説明とバグ報告に関する情報は
145 http://www.kernel.org/doc/man\-pages/ に書かれている。