X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=release%2Fman3%2Fexec.3;h=1de4b2cb3c33bc7438ac0626adc612a734a0158e;hb=bb92023e2caf6dc30bd3a8f07877ec870c853e23;hp=a2ebb51a3df6cb22bbefbfaef3c8d889bc42ae38;hpb=7e089fcc022461849bbc09437103cc337a88dd9c;p=linuxjm%2FLDP_man-pages.git diff --git a/release/man3/exec.3 b/release/man3/exec.3 index a2ebb51a..1de4b2cb 100644 --- a/release/man3/exec.3 +++ b/release/man3/exec.3 @@ -1,6 +1,7 @@ .\" Copyright (c) 1991 The Regents of the University of California. .\" All rights reserved. .\" +.\" %%%LICENSE_START(BSD_4_CLAUSE_UCB) .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: @@ -28,6 +29,7 @@ .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. +.\" %%%LICENSE_END .\" .\" @(#)exec.3 6.4 (Berkeley) 4/19/91 .\" @@ -36,210 +38,106 @@ .\" Modified, 24 Jun 2004, Michael Kerrisk .\" Added note on casting NULL .\" -.\" Japanese Version Copyright (c) 1998 Masato Taruishi -.\" all rights reserved. -.\" Translated 1998-05-27, Masato Taruishi -.\" Modified 1998-08-08, Fujiwara Teruyoshi -.\" Modified 2000-10-06, Kentaro Shirakata -.\" Modified 2005-02-26, Akihiro MOTOKI -.\" Updated 2010-10-27, Akihiro Motoki , LDP v3.29 +.\"******************************************************************* .\" -.\"WORD: null-terminated strings NULL¤Ç½ª¤ï¤ëʸ»úÎó -.\"WORD: anti-Trojan-horse measure ¥È¥í¥¤¤ÎÌÚÇÏÂкö -.\"WORD: external variable ³°ÉôÊÑ¿ô -.\"WORD: current directory first ¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤¬ºÇ½é -.\"WORD: the attempted execve ¸Æ¤Ó½Ð¤½¤¦¤È¤·¤¿execve -.\"WORD: variadic function ²ÄÊÑĹ°ú¤­¿ô´Ø¿ô -.\"WORD: semantics (¥×¥í¥°¥é¥à¤Î)Æ°ºî +.\" This file was generated with po4a. Translate the source file. .\" -.TH EXEC 3 2010-09-25 "GNU" "Linux Programmer's Manual" -.SH ̾Á° -execl, execlp, execle, execv, execvp, execvpe \- ¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤¹¤ë -.SH ½ñ¼° -.B #include +.\"******************************************************************* +.TH EXEC 3 2010\-09\-25 GNU "Linux Programmer's Manual" +.SH 名前 +execl, execlp, execle, execv, execvp, execvpe \- ファイルを実行する +.SH 書式 +\fB#include \fP .sp -.B extern char **environ; +\fBextern char **environ;\fP .sp -.BI "int execl(const char *" path ", const char *" arg ", ...);" +\fBint execl(const char *\fP\fIpath\fP\fB, const char *\fP\fIarg\fP\fB, ...);\fP .br -.BI "int execlp(const char *" file ", const char *" arg ", ...);" +\fBint execlp(const char *\fP\fIfile\fP\fB, const char *\fP\fIarg\fP\fB, ...);\fP .br -.BI "int execle(const char *" path ", const char *" arg , +\fBint execle(const char *\fP\fIpath\fP\fB, const char *\fP\fIarg\fP\fB,\fP .br -.BI " ..., char * const " envp "[]);" +\fB ..., char * const \fP\fIenvp\fP\fB[]);\fP .br -.BI "int execv(const char *" path ", char *const " argv "[]);" +\fBint execv(const char *\fP\fIpath\fP\fB, char *const \fP\fIargv\fP\fB[]);\fP .br -.BI "int execvp(const char *" file ", char *const " argv "[]);" +\fBint execvp(const char *\fP\fIfile\fP\fB, char *const \fP\fIargv\fP\fB[]);\fP .br -.BI "int execvpe(const char *" file ", char *const " argv "[]," +\fBint execvpe(const char *\fP\fIfile\fP\fB, char *const \fP\fIargv\fP\fB[],\fP .br -.BI " char *const " envp "[]);" +\fB char *const \fP\fIenvp\fP\fB[]);\fP .sp .in -4n -glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï -.RB ( feature_test_macros (7) -»²¾È): +glibc 向けの機能検査マクロの要件 (\fBfeature_test_macros\fP(7) 参照): .in .sp -.BR execvpe (): -_GNU_SOURCE -.SH ÀâÌÀ -.BR exec () -¥Õ¥¡¥ß¥ê¡¼¤Î´Ø¿ô¤Ï¸½ºß¤Î¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤ò¿·¤·¤¤¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤ÇÃÖ¤­ -´¹¤¨¤ë¡£¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤Ï -.BR execve (2) -¤Î¥Õ¥í¥ó¥È¥¨¥ó¥É¤Ç¤¢¤ë¡£ -(¸½ºß¤Î¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤ÎÃÖ¤­´¹¤¨¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï -.BR execve (2) -¤Î¥Þ¥Ë¥å¥¢¥ë¤ò»²¾È) +\fBexecvpe\fP(): _GNU_SOURCE +.SH 説明 +\fBexec\fP() ファミリーの関数は現在のプロセスイメージを新しいプロセスイメージで置き 換える。このマニュアルで説明されている関数は +\fBexecve\fP(2) のフロントエンドである。 (現在のプロセスイメージの置き換えについての詳細は \fBexecve\fP(2) +のマニュアルを参照) .PP -¤³¤ì¤é¤Î´Ø¿ô¤ÎºÇ½é¤Î°ú¤­¿ô¤Ï¡¢¼Â¹Ô¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î̾Á°¤Ç¤¢¤ë¡£ +これらの関数の最初の引き数は、実行されるファイルの名前である。 .PP -´Ø¿ô -.BR execl (), -.BR execlp (), -.BR execle () -¤Î -.I "const char *arg" -¤È¤½¤ì¤Ë³¤¯¾ÊάÉôʬ¤Ï -.IR arg0 , -.IR arg1 , -\&..., -.I argn -¤È¤ß¤Ê¤µ¤ì¤ë¡£ -¤³¤ì¤é¤Ë¤Ï¡¢¼Â¹Ô¤µ¤ì¤ë¥×¥í¥°¥é¥à¤ÇÍøÍѲÄǽ¤Ê°ú¤­¿ô¤Î¥ê¥¹¥È¤ò»ØÄꤹ¤ë -(°ú¤­¿ô¤Î¥ê¥¹¥È¤Ï NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤«¤é¹½À®¤µ¤ì¤ë)¡£ -´·½¬¤È¤·¤Æ¡¢ºÇ½é¤Î°ú¤­¿ô¤Ï¡¢¼Â¹Ô¤µ¤ì¤ë¥Õ¥¡¥¤¥ë̾ -¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ë¤¹¤ë¡£°ú¤­¿ô¤Î¥ê¥¹¥È¤Ïɬ¤º NULL -¤Ç½ª¤ï¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤º¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï²ÄÊÑĹ°ú¤­¿ô´Ø¿ô¤Ê¤Î¤Ç¡¢ -¤³¤Î¥Ý¥¤¥ó¥¿¤Ï -.I "(char *) NULL" -¤È¥­¥ã¥¹¥È¤·¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +関数 \fBexecl\fP(), \fBexeclp\fP(), \fBexecle\fP() の \fIconst char *arg\fP とそれに続く省略部分は +\fIarg0\fP, \fIarg1\fP, \&..., \fIargn\fP とみなされる。 これらには、実行されるプログラムで利用可能な引き数のリストを指定する +(引き数のリストは NULL で終端された文字列へのポインタから構成される)。 慣習として、最初の引き数は、実行されるファイル名 +へのポインタにする。引き数のリストは必ず NULL で終わらなければならず、これらの関数は可変長引き数関数なので、 このポインタは \fI(char *) +NULL\fP とキャストしなければならない。 .PP -´Ø¿ô -.BR execv (), -.BR execvp (), -.BR execvpe () -¤Ï¡¢ÍøÍѲÄǽ¤Ê°ú¤­¿ô¥ê¥¹¥È (NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î -¥Ý¥¤¥ó¥¿¤ÎÇÛÎó) ¤ò¿·¤·¤¤¥×¥í¥°¥é¥à¤ËÅϤ¹¡£ -´·½¬¤È¤·¤Æ¡¢ºÇ½é¤Î°ú¤­¿ô¤Ï¼Â¹Ô¤µ¤ì¤ë¥Õ¥¡¥¤¥ë̾¤Ø -¤Î¥Ý¥¤¥ó¥¿¤Ë¤¹¤ë¡£¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤Ïɬ¤º -NULL ¤Ç½ª¤ï¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +関数 \fBexecv\fP(), \fBexecvp\fP(), \fBexecvpe\fP() は、利用可能な引き数リスト (NULL で終端された文字列への +ポインタの配列) を新しいプログラムに渡す。 慣習として、最初の引き数は実行されるファイル名へ のポインタにする。ポインタの配列は必ず NULL +で終わらなければならない。 .PP -´Ø¿ô -.BR execle (), -.BR execvpe () -¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤¬°ú¤­¿ô -.I envp -·Ðͳ¼Â¹Ô¤µ¤ì¤ë¥×¥í¥°¥é¥à¤Î´Ä¶­¤ò»ØÄꤹ¤ë¤³¤È¤¬¤Ç¤­¤ë¡£ -.I envp -°ú¤­¿ô¤Ï¡¢NULL ¤Ç½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤Ç¤¢¤ê¡¢ -NULL ¥Ý¥¤¥ó¥¿¤Ç½ª¤ï¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -¾¤Î´Ø¿ô¤Ç¤Ï¡¢¸Æ¤Ó½Ð¤·¸µ¤Î¥×¥í¥»¥¹¤Î³°ÉôÊÑ¿ô -.B environ -¤«¤é¿·¤·¤¤¥×¥í¥»¥¹ÍѤδĶ­¤òÍ¿¤¨¤ë¡£ -.SS execlp() ¤È execvp() ¤ÎÆÃÊ̤ÊÆ°ºî +関数 \fBexecle\fP(), \fBexecvpe\fP() では、呼び出し元が引き数 \fIenvp\fP +経由実行されるプログラムの環境を指定することができる。 \fIenvp\fP 引き数は、NULL で終端された文字列へのポインタの配列であり、 NULL +ポインタで終わらなければならない。 他の関数では、呼び出し元のプロセスの外部変数 \fBenviron\fP から新しいプロセス用の環境を与える。 +.SS "execlp() と execvp() の特別な動作" .PP -´Ø¿ô -.BR execlp (), -.BR execvp (), -.BR execvpe () -¤Ï¡¢»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤¬¥¹¥é¥Ã¥·¥å (/) ¤ò´Þ¤ó¤Ç¤¤¤Ê¤¤¾ì¹ç¡¢ -¥·¥§¥ë¤ÈƱ¤¸Æ°ºî¤Ç¼Â¹Ô²Äǽ¤Ê¥Õ¥¡¥¤¥ë¤òõº÷¤¹¤ë¡£ -¥Õ¥¡¥¤¥ë¤Î¸¡º÷¤Ï¡¢´Ä¶­ÊÑ¿ô -.B PATH -¤Ç»ØÄꤵ¤ì¤¿¥³¥í¥ó¶èÀÚ¤ê¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Ñ¥¹Ì¾¤Î¥ê¥¹¥È¤òÂоݤ˹Ԥï¤ì¤ë¡£ -¤³¤ÎÊÑ¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¥Ñ¥¹Ì¾¤Î¥ê¥¹¥È¤Î¥Ç¥Õ¥©¥ë¥ÈÃͤȤ·¤Æ¡¢ -¥«¥ì¥ó¥È¥Ç¥£¥ì¥¯¥È¥ê¤Î¸å¤í¤Ë¡¢ -.I confstr(_CS_PATH) -¤¬ÊÖ¤¹¥Ç¥£¥ì¥¯¥È¥ê¤Î¥ê¥¹¥È¤ò¤Ä¤Ê¤²¤¿Ãͤ¬»ÈÍѤµ¤ì¤ë (¤³¤Î -.BR confstr (3) -¤Î¸Æ¤Ó½Ð¤·¤Ç¤ÏÄ̾ï "/bin:/usr/bin" ¤¬ÊÖ¤µ¤ì¤ë)¡£ +関数 \fBexeclp\fP(), \fBexecvp\fP(), \fBexecvpe\fP() は、指定されたファイル名がスラッシュ (/) を含んでいない場合、 +シェルと同じ動作で実行可能なファイルを探索する。 ファイルの検索は、環境変数 \fBPATH\fP +で指定されたコロン区切りのディレクトリのパス名のリストを対象に行われる。 この変数が定義されていない場合、パス名のリストのデフォルト値として、 +カレントディレクトリの後ろに、 \fIconfstr(_CS_PATH)\fP が返すディレクトリのリストをつなげた値が使用される (この +\fBconfstr\fP(3) の呼び出しでは通常 "/bin:/usr/bin" が返される)。 -»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤¬¥¹¥é¥Ã¥·¥å¤ò´Þ¤à¾ì¹ç¡¢ -.B PATH -¤Ï̵»ë¤µ¤ì¡¢»ØÄꤵ¤ì¤¿¥Ñ¥¹Ì¾¤Î¥Õ¥¡¥¤¥ë¤¬¼Â¹Ô¤µ¤ì¤ë¡£ +指定されたファイル名がスラッシュを含む場合、 \fBPATH\fP は無視され、指定されたパス名のファイルが実行される。 -¤µ¤é¤Ë¡¢¤¤¤¯¤Ä¤«¤Î¥¨¥é¡¼¤ÏÆÃÊ̤˽èÍý¤µ¤ì¤ë¡£ +さらに、いくつかのエラーは特別に処理される。 -¥Õ¥¡¥¤¥ë¤¬¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ç¤Ê¤¤¾ì¹ç (¤³¤Î¤È¤­¸Æ¤Ó½Ð¤½¤¦¤È¤·¤¿ -.BR execve (2) -¤Ï¥¨¥é¡¼ -.B EACCES -¤Ç¼ºÇÔ¤¹¤ë)¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï»Ä¤ê¤Î¸¡º÷¥Ñ¥¹¤Î¸¡º÷¤ò³¤±¤ë¡£ -¾¤Ë¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤é¤Ê¤¯¤Ê¤Ã¤¿¾ì¹ç -.I errno -¤Ë -.B EACCES -¤òÀßÄꤷÉüµ¢¤¹¤ë¡£ -.\" fujiwara: ¸Ä¿ÍŪ¤Ë¤Ï¡ÖÉüµ¢¤¹¤ë¡×¤ÎÊý¤¬¹¥¤­(^_^; +ファイルが実行ファイルでない場合 (このとき呼び出そうとした \fBexecve\fP(2) はエラー \fBEACCES\fP +で失敗する)、これらの関数は残りの検索パスの検索を続ける。 他にファイルが見つからなくなった場合 \fIerrno\fP に \fBEACCES\fP +を設定し復帰する。 -¥Õ¥¡¥¤¥ë¤Î¥Ø¥Ã¥À¤¬¼Â¹Ô·Á¼°¤È¤·¤Æǧ¼±¤Ç¤­¤Ê¤¤¾ì¹ç -(¤³¤Î¤È¤­¸Æ¤Ó½Ð¤½¤¦¤È¤·¤¿ -.BR execve (2) -¤Ï¥¨¥é¡¼ -.B ENOEXEC -¤Ç¼ºÇÔ¤¹¤ë)¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤òºÇ½é¤Î°ú¤­¿ô¤È¤·¤¿¥·¥§¥ë -.RI ( /bin/sh ) -¤ò¼Â¹Ô¤¹¤ë (¤³¤ì¤Ë¤â¼ºÇÔ¤·¤¿¾ì¹ç¡¢¤³¤ì°Ê¾å¤Î¸¡º÷¤Ï¹Ô¤ï¤ì¤Ê¤¤)¡£ -.SH ÊÖ¤êÃÍ -.BR exec () -·²¤Î´Ø¿ô¤¬Éüµ¢¤¹¤ë¤Î¤Ï¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Î¤ß¤Ç¤¢¤ë¡£ -ÊÖ¤êÃÍ¤Ï \-1 ¤Ç¡¢ -.I errno -¤Ë¥¨¥é¡¼¤ÎÆâÍƤ¬¥»¥Ã¥È¤µ¤ì¤ë¡£ -.SH ¥¨¥é¡¼ -¤³¤ì¤éÁ´¤Æ¤Î´Ø¿ô¤Ï¼ºÇÔ¤¹¤ë¾ì¹ç¤¬¤¢¤ë¡£¤½¤Î¾ì¹ç¡¢ -.BR execve (2) -¤ËÂФ·¤Æµ¬Äꤵ¤ì¤¿¥¨¥é¡¼¤¬ -.I errno -¤ËÀßÄꤵ¤ì¤ë¡£ -.SH ¥Ð¡¼¥¸¥ç¥ó -.BR execvpe () -´Ø¿ô¤Ï glibc 2.11 ¤Ç½é¤á¤ÆÅо줷¤¿¡£ -.SH ½àµò -POSIX.1-2001, POSIX.1-2008. +ファイルのヘッダが実行形式として認識できない場合 (このとき呼び出そうとした \fBexecve\fP(2) はエラー \fBENOEXEC\fP +で失敗する)、これらの関数はそのファイルを最初の引き数としたシェル (\fI/bin/sh\fP) を実行する +(これにも失敗した場合、これ以上の検索は行われない)。 +.SH 返り値 +The \fBexec\fP() functions only return if an error has occurred. The return +value is \-1, and \fIerrno\fP is set to indicate the error. +.SH エラー +これら全ての関数は失敗する場合がある。その場合、 \fBexecve\fP(2) に対して規定されたエラーが \fIerrno\fP に設定される。 +.SH バージョン +\fBexecvpe\fP() 関数は glibc 2.11 で初めて登場した。 +.SH 準拠 +POSIX.1\-2001, POSIX.1\-2008. -.BR execvpe () -´Ø¿ô¤Ï GNU ¤Ë¤è¤ë³ÈÄ¥¤Ç¤¢¤ë¡£ -.SH Ãí°Õ -Linux °Ê³°¤Î¥·¥¹¥Æ¥à¤Ë¤Ï¡¢ -(´Ä¶­ÊÑ¿ô \fBPATH\fR ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Î) -¥Ç¥Õ¥©¥ë¥È¤Î¥Ñ¥¹¤Ë¤ª¤¤¤Æ¡¢¥«¥ì¥ó¥È¡¦¥Ç¥£¥ì¥¯¥È¥ê¤¬ -.I /bin -¤È -.I /usr/bin -¤Î¸å¤í¤ËÇÛÃÖ¤µ¤ì¤ë¤â¤Î¤â¤¢¤ë¡£ -¤³¤ì¤Ï¥È¥í¥¤¤ÎÌÚÇÏÂкö¤Î¤¿¤á¤Ç¤¢¤ë¡£ -Linux ¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥Ñ¥¹¤Ë¡¢ÀΤʤ¬¤é¤Î¡Ö¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò -Àè¤Ëõº÷¡×¤È¤¤¤¦¥ë¡¼¥ë¤ò»È¤Ã¤Æ¤¤¤ë¡£ +\fBexecvpe\fP() 関数は GNU による拡張である。 +.SH 注意 +Linux 以外のシステムには、 (環境変数 \fBPATH\fP が定義されていないときの) デフォルトのパスにおいて、カレント・ディレクトリが +\fI/bin\fP と \fI/usr/bin\fP の後ろに配置されるものもある。 これはトロイの木馬対策のためである。 Linux +では、デフォルトのパスに、昔ながらの「現在のディレクトリを 先に探索」というルールを使っている。 .PP -¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤·¤è¤¦¤È¤·¤Æ¤¤¤ë´Ö¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿»þ¤Î -.BR execlp () -¤È -.BR execvp () -¤Î¤Õ¤ë¤Þ¤¤¤Ë¤Ä¤¤¤ÆÎò»ËŪ¤Ê´·½¬¤Ï¤¢¤ë¤¬¡¢ÅÁÅýŪ¤Ëʸ½ñ¤È¤·¤Æµ­ºÜ¤µ¤ì¤Æ¤ª¤é¤º¡¢ -POSIX ɸ½à¤Ç¤âµ¬Äꤵ¤ì¤Æ¤¤¤Ê¤¤¡£BSD (¤Þ¤¿¤ª¤½¤é¤¯Â¾¤Î¥·¥¹¥Æ¥à) ¤Ç¤Ï¡¢ -.B ETXTBSY -¤¬È¯À¸¤·¤¿¾ì¹ç¡¢¼«Æ°Åª¤ËÃæÃÇ (sleep) ¤·ºÆ»î¹Ô¤ò¹Ô¤¦¡£ -Linux ¤Ï¤½¤ì¤ò¥Ï¡¼¥É¥¨¥é¡¼¤È¤·¤Æ¼è¤ê°·¤¤Â¨ºÂ¤ËÉüµ¢¤¹¤ë¡£ +ファイルを実行しようとしている間にエラーが発生した時の \fBexeclp\fP() と \fBexecvp\fP() +のふるまいについて歴史的な慣習はあるが、伝統的に文書として記載されておらず、 POSIX 標準でも規定されていない。BSD (またおそらく他のシステム) +では、 \fBETXTBSY\fP が発生した場合、自動的に中断 (sleep) し再試行を行う。 Linux +はそれをハードエラーとして取り扱い即座に復帰する。 .PP -ÅÁÅýŪ¤Ë¡¢´Ø¿ô -.BR execlp () -¤È -.BR execvp () -¤Ï¡¢¾å¤ÇÀâÌÀ¤·¤¿¥¨¥é¡¼¤È¡¢¤³¤ì¤é 2 ¤Ä¤Î´Ø¿ô¼«¿È¤¬ÊÖ¤¹ -.B ENOMEM -¤È -.B E2BIG -°Ê³°¤ÎÁ´¤Æ¤Î¥¨¥é¡¼¤ò̵»ë¤·¤Æ¤¤¤¿¤¬¡¢ -º£¤Ç¤Ï¡¢¾å¤ÇÀâÌÀ¤·¤¿°Ê³°¤Î¥¨¥é¡¼¤¬È¯À¸¤·¤¿¾ì¹ç¤Ç¤â¡¢ -Ê֤äƤ¯¤ë¤è¤¦Êѹ¹¤µ¤ì¤¿¡£ -.SH ´ØÏ¢¹àÌÜ -.BR sh (1), -.BR execve (2), -.BR fork (2), -.BR ptrace (2), -.BR fexecve (3), -.BR environ (7) +伝統的に、関数 \fBexeclp\fP() と \fBexecvp\fP() は、上で説明したエラーと、これら 2 つの関数自身が返す \fBENOMEM\fP と +\fBE2BIG\fP 以外の全てのエラーを無視していたが、 今では、上で説明した以外のエラーが発生した場合でも、 返ってくるよう変更された。 +.SH 関連項目 +\fBsh\fP(1), \fBexecve\fP(2), \fBfork\fP(2), \fBptrace\fP(2), \fBfexecve\fP(3), +\fBenviron\fP(7) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.50 の一部 +である。プロジェクトの説明とバグ報告に関する情報は +http://www.kernel.org/doc/man\-pages/ に書かれている。