OSDN Git Service

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