OSDN Git Service

(split) LDP: Update the version to 3.53 in PO files
[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 関数 \fBexecl\fP(), \fBexeclp\fP(), \fBexecle\fP()  の \fIconst char\ *arg\fP とそれに続く省略部分は
83 \fIarg0\fP, \fIarg1\fP, \&..., \fIargn\fP とみなされる。 これらには、実行されるプログラムで利用可能な引き数のリストを指定する
84 (引き数のリストは NULL で終端された文字列へのポインタから構成される)。 慣習として、最初の引き数は、実行されるファイル名
85 へのポインタにする。引き数のリストは必ず NULL で終わらなければならず、これらの関数は可変長引き数関数なので、 このポインタは \fI(char\ *) NULL\fP とキャストしなければならない。
86 .PP
87 関数 \fBexecv\fP(), \fBexecvp\fP(), \fBexecvpe\fP()  は、利用可能な引き数リスト (NULL で終端された文字列への
88 ポインタの配列) を新しいプログラムに渡す。 慣習として、最初の引き数は実行されるファイル名へ のポインタにする。ポインタの配列は必ず NULL
89 で終わらなければならない。
90 .PP
91 関数 \fBexecle\fP(), \fBexecvpe\fP()  では、呼び出し元が引き数 \fIenvp\fP
92 経由実行されるプログラムの環境を指定することができる。 \fIenvp\fP 引き数は、NULL で終端された文字列へのポインタの配列であり、 NULL
93 ポインタで終わらなければならない。 他の関数では、呼び出し元のプロセスの外部変数 \fBenviron\fP から新しいプロセス用の環境を与える。
94 .SS "execlp() と execvp() の特別な動作"
95 .PP
96 関数 \fBexeclp\fP(), \fBexecvp\fP(), \fBexecvpe\fP()  は、指定されたファイル名がスラッシュ (/) を含んでいない場合、
97 シェルと同じ動作で実行可能なファイルを探索する。 ファイルの検索は、環境変数 \fBPATH\fP
98 で指定されたコロン区切りのディレクトリのパス名のリストを対象に行われる。 この変数が定義されていない場合、パス名のリストのデフォルト値として、
99 カレントディレクトリの後ろに、 \fIconfstr(_CS_PATH)\fP が返すディレクトリのリストをつなげた値が使用される (この
100 \fBconfstr\fP(3)  の呼び出しでは通常 "/bin:/usr/bin" が返される)。
101
102 指定されたファイル名がスラッシュを含む場合、 \fBPATH\fP は無視され、指定されたパス名のファイルが実行される。
103
104 さらに、いくつかのエラーは特別に処理される。
105
106 ファイルが実行ファイルでない場合 (このとき呼び出そうとした \fBexecve\fP(2)  はエラー \fBEACCES\fP
107 で失敗する)、これらの関数は残りの検索パスの検索を続ける。 他にファイルが見つからなくなった場合 \fIerrno\fP に \fBEACCES\fP
108 を設定し復帰する。
109
110 ファイルのヘッダが実行形式として認識できない場合 (このとき呼び出そうとした \fBexecve\fP(2)  はエラー \fBENOEXEC\fP
111 で失敗する)、これらの関数はそのファイルを最初の引き数としたシェル (\fI/bin/sh\fP)  を実行する
112 (これにも失敗した場合、これ以上の検索は行われない)。
113 .SH 返り値
114 \fBexec\fP()  群の関数が復帰するのは、エラーが発生した場合のみである。 返り値は \-1 で、 \fIerrno\fP にエラーの内容がセットされる。
115 .SH エラー
116 これら全ての関数は失敗する場合がある。その場合、 \fBexecve\fP(2)  に対して規定されたエラーが \fIerrno\fP に設定される。
117 .SH バージョン
118 \fBexecvpe\fP()  関数は glibc 2.11 で初めて登場した。
119 .SH 準拠
120 POSIX.1\-2001, POSIX.1\-2008.
121
122 \fBexecvpe\fP()  関数は GNU による拡張である。
123 .SH 注意
124 Linux 以外のシステムには、 (環境変数 \fBPATH\fP が定義されていないときの)  デフォルトのパスにおいて、カレント・ディレクトリが
125 \fI/bin\fP と \fI/usr/bin\fP の後ろに配置されるものもある。 これはトロイの木馬対策のためである。 Linux
126 では、デフォルトのパスに、昔ながらの「現在のディレクトリを 先に探索」というルールを使っている。
127 .PP
128 ファイルを実行しようとしている間にエラーが発生した時の \fBexeclp\fP()  と \fBexecvp\fP()
129 のふるまいについて歴史的な慣習はあるが、伝統的に文書として記載されておらず、 POSIX 標準でも規定されていない。BSD (またおそらく他のシステム)
130 では、 \fBETXTBSY\fP が発生した場合、自動的に中断 (sleep) し再試行を行う。 Linux
131 はそれをハードエラーとして取り扱い即座に復帰する。
132 .PP
133 伝統的に、関数 \fBexeclp\fP()  と \fBexecvp\fP()  は、上で説明したエラーと、これら 2 つの関数自身が返す \fBENOMEM\fP と
134 \fBE2BIG\fP 以外の全てのエラーを無視していたが、 今では、上で説明した以外のエラーが発生した場合でも、 返ってくるよう変更された。
135 .SH 関連項目
136 \fBsh\fP(1), \fBexecve\fP(2), \fBfork\fP(2), \fBptrace\fP(2), \fBfexecve\fP(3),
137 \fBenviron\fP(7)
138 .SH この文書について
139 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.53 の一部
140 である。プロジェクトの説明とバグ報告に関する情報は
141 http://www.kernel.org/doc/man\-pages/ に書かれている。