Home :: International :: Manuals :: Howto :: FAQ :: Man Pages :: Email Login

 
 

 

EXEC

Section: Linux Programmer's Manual (3)
Updated: 29 November 1993
Index Return to Main Contents
 

̾Á°

execl, execlp, execle, execv, execvp - ¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤¹¤ë  

½ñ¼°

#include <unistd.h>

extern char **environ;

int execl( const char *path, const char *arg, ...);
int execlp( const char *file, const char *arg, ...);
int execle( const char *path, const char *arg , ..., char * const envp[]);
int execv( const char *path, char *const argv[]);
int execvp( const char *file, char *const argv[]);  

ÀâÌÀ

´Ø¿ô exec ¥Õ¥¡¥ß¥ê¡¼¤Ï¸½ºß¤Î¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤ò¿·¤·¤¤¥×¥í¥»¥¹¥¤¥á¡¼¥¸¤ÇÃÖ¤­ ´¹¤¨¤ë¡£¤³¤Î¥Þ¥Ë¥å¥¢¥ë¤ÇÀâÌÀ¤µ¤ì¤Æ¤¤¤ë´Ø¿ô¤Ï execve(2) ¤Î¥Õ¥í¥ó¥È¥¨¥ó¥É¤Ç¤¢¤ë¡£ (¸½ºß¤Î¥×¥í¥»¥¹¤ÎÃÖ´¹¤Ë¤Ä¤¤¤Æ¤Î¾ÜºÙ¤Ï execve ¤Î¥Þ¥Ë¥å¥¢¥ë¤ò¸«¤è)¡£

¤³¤ì¤é¤Î´Ø¿ô¤ÎºÇ½é¤Î°ú¿ô¤Ï¼Â¹Ô¤µ¤ì¤ë¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹Ì¾¤Ç¤¢¤ë¡£

´Ø¿ô execl, execlp, execle ¤Î const char *arg ¤È¤½¤ì¤Ë³¤¯°ú¿ô¤Ï arg0, arg1, ..., argn ¤È¤·¤Æ¹Í¤¨¤é¤ì¤ë¡£ ¤³¤ì¤é¤Ë¤Ï¼Â¹Ô¤µ¤ì¤ë¥×¥í¥°¥é¥à¤ÇÍøÍѲÄǽ¤Ê°ú¿ô¤Î¥ê¥¹¥È(ºÇ¸å¤¬ NULL¤Ç½ª¤ï¤ë 1 ¤Ä°Ê¾å¤Îʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿)¤òÍ¿¤¨¤ë¡£ ºÇ½é¤Î°ú¿ô¤Ï´·½¬¤Ë¤è¤ê¡¢¼Â¹Ô¤µ¤ì¤ë¥Õ¥¡¥¤¥ë̾ ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ë¤¹¤ë¡£°ú¿ô¤Î¥ê¥¹¥È¤Ïɬ¤º NULL ¤Ç½ª¤ï¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

´Ø¿ô execv ¤È execvp ¤Ï¿·¤·¤¤¥×¥í¥°¥é¥à¤ÇÍøÍѲÄǽ¤Ê°ú¿ô¥ê¥¹¥È(ºÇ¸å¤¬NULL¤Ç½ª¤ï¤ë 1 ¤Ä °Ê¾å¤Îʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÇÛÎó)¤òÍ¿¤¨¤ë¡£ ºÇ½é¤Î°ú¿ô¤Ï´·½¬¤Ë¤è¤ê¼Â¹Ô¤µ¤ì¤ë¥Õ¥¡¥¤¥ë̾¤Ø ¤Î¥Ý¥¤¥ó¥¿¤Ë¤¹¤ë¡£¥Ý¥¤¥ó¥¿¤ÎÇÛÎó¤Ïɬ¤º NULL ¤Ç½ª¤ï¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£

´Ø¿ô execle ¤Ç¤Ï¥×¥í¥»¥¹¤Î´Ä¶­¤â»ØÄꤹ¤ë¡£´Ä¶­¤Ï°ú¿ô¥ê¥¹¥È(¥Ñ¥é¥á¡¼¥¿¥ê¥¹¥È¤â¤·¤¯¤ÏÄɲäΥѥé¥á¡¼¥¿ ¤ò»ý¤Ã¤¿argvÇÛÎó¤Ø¤Î¥Ý¥¤¥ó¥¿)¤ÎºÇ¸å¤Î NULL ¤Ë³¤¤¤Æ»ØÄꤹ¤ë¡£ ÄɲäΥѥé¥á¡¼¥¿¤È¤Ï NULL¤Ç½ª¤ï¤ëʸ»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤ÎÇÛÎó ¤Ç¤¢¤ê NULL ¤Ç½ª¤ï¤é¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£Â¾¤Î´Ø¿ô¤Ï¸½ºß¤Î¥×¥í¥» ¥¹¤Î³°ÉôÊÑ¿ô environ ¤«¤é¿·¤·¤¤¥×¥í¥»¥¹ÍѤδĶ­¤òÍ¿¤¨¤ë¡£

¤³¤ì¤é¤Î´Ø¿ô¤Î¤¤¤¯¤Ä¤«¤ÏÆÃÊ̤ʵ­Ë¡¤ò»ý¤Ã¤Æ¤¤¤ë¡£

´Ø¿ô execlp ¤È execvp ¤Ï¤â¤·»ØÄꤵ¤ì¤¿¥Õ¥¡¥¤¥ë̾¤¬¥¹¥é¥Ã¥·¥å(/) ¤ò´Þ¤ó¤Ç¤¤¤Ê¤¤¾ì¹ç¡¢¥·¥§¥ë¤ÈƱ¤¸Æ°ºî¤Ç¼Â¹Ô²Äǽ¤Ê¥Õ¥¡¥¤¥ë¤òõº÷¤¹¤ë¡£ ¸¡º÷¥Ñ¥¹¤Ï´Ä¶­ÊÑ¿ô PATH ¤Ç»ØÄꤵ¤ì¤¿¥Ñ¥¹¤Ç¤¢¤ë¡£ ¤â¤·¤³¤ÎÊÑ¿ô¤¬»ØÄꤵ¤ì¤Æ¤¤¤Ê¤¤¾ì¹ç¡¢¥Ç¥Õ¥©¥ë¥ÈPATH¤È¤·¤Æ``:/ bin:/usr/bin''¤¬»È¤ï¤ì¤ë¡£¤µ¤é¤ËÆÃÄê¤Î¥¨¥é¡¼¤ÏÆÃÊÌ ¤Ë°·¤ï¤ì¤ë¡£

¤â¤·¥Õ¥¡¥¤¥ë¤¬¼Â¹Ô¥Õ¥¡¥¤¥ë¤Ç¤Ê¤¤¾ì¹ç(¸Æ¤Ó½Ð¤½¤¦¤È¤·¤¿ execve ¤Ï EACCES ¤òÊÖ¤¹)¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï»Ä¤ê¤Î¸¡º÷¥Ñ¥¹¤Î¸¡º÷¤ò³¤±¤ë¡£ ¾¤Ë¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤é¤Ê¤¯¤Ê¤Ã¤¿¾ì¹ç¥°¥í¡¼¥Ð¥ëÊÑ¿ô errno ¤Ë EACCES ¤òÀßÄꤷµ¢¤Ã¤Æ¤¯¤ë¡£

¥Õ¥¡¥¤¥ë¤Î¥Ø¥Ã¥À¤¬¼Â¹Ô·Á¼°¤È¤·¤ÆÇ§¼±¤Ç¤­¤Ê¤¤¾ì¹ç (¸Æ¤Ó½Ð¤½¤¦¤È¤·¤¿ execve ¤Ï ENOEXEC ¤òÊÖ¤¹)¡¢¤³¤ì¤é¤Î´Ø¿ô¤Ï¤½¤Î¥Õ¥¡¥¤¥ë¤òºÇ½é¤Î°ú¿ô¤È¤·¤¿¥·¥§¥ë ¤ò¼Â¹Ô¤¹¤ë(¤³¤Î»î¤ß¤¬¼ºÇÔ¤·¤¿¾ì¹ç¡¢¤³¤ì°Ê¾å¤Î¸¡º÷¤Ï¹Ô¤ï¤ì¤Ê ¤¤)¡£  

ÊÖ¤êÃÍ

¤â¤· exec ¥Õ¥¡¥ß¥ê¡¼¤¬Ê֤äƤ­¤¿¾ì¹ç¡¢¥¨¥é¡¼¤¬È¯À¸¤·¤Æ¤¤¤ë¡£ ÊÖ¤êÃͤÏ-1 ¤Ç¡¢Âç°èÊÑ¿ô errno ¤Ë¤½¤Î¥¨¥é¡¼¤ÎÆâÍÆ¤¬¥»¥Ã¥È¤µ¤ì¤ë¡£  

¥Õ¥¡¥¤¥ë

/bin/sh  

¥¨¥é¡¼

¤³¤ì¤éÁ´¤Æ¤Î´Ø¿ô¤Ï¼ºÇÔ¤¹¤ë¾ì¹ç¤¬¤¢¤ë¡£¤½¤Î¾ì¹ç¥é¥¤¥Ö¥é¥ê´Ø¿ô execve(2) ¤Ë¤è¤Ã¤Æ»ØÄꤵ¤ì¤¿¥¨¥é¡¼¤ò errno ¤ËÀßÄꤹ¤ë¡£  

´ØÏ¢¹àÌÜ

sh(1), execve(2), fork(2), environ(5), ptrace(2)  

¸ß´¹À­

Linux °Ê³°¤Î¥·¥¹¥Æ¥à¤Ë¤Ï¡¢ (´Ä¶­ÊÑ¿ô PATH ¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤Ê¤¤¤È¤­¤Î) ¥Ç¥Õ¥©¥ë¥È¤Î¥Ñ¥¹¤Ë¤ª¤¤¤Æ¡¢¸½ºß¤Îºî¶È¥Ç¥£¥ì¥¯¥È¥ê (current working directory) ¤¬ /bin ¤È /usr/bin ¤Î¸å¤í¤ËÇÛÃÖ¤µ¤ì¤ë¤â¤Î¤â¤¢¤ë¡£ ¤³¤ì¤Ï¥È¥í¥¤¤ÎÌÚÇÏÂкö¤Î¤¿¤á¤Ç¤¢¤ë¡£ Linux ¤Ç¤Ï¡¢¥Ç¥Õ¥©¥ë¥È¤Î¥Ñ¥¹¤Ë¡¢ÀΤʤ¬¤é¤Î¡Ö¸½ºß¤Î¥Ç¥£¥ì¥¯¥È¥ê¤ò Àè¤Ëõº÷¡×¤È¤¤¤¦¥ë¡¼¥ë¤ò»È¤Ã¤Æ¤¤¤ë¡£

¥Õ¥¡¥¤¥ë¤ò¼Â¹Ô¤·¤è¤¦¤È¤·¤Æ¤¤¤ë´Ö¤Ë¥¨¥é¡¼¤¬È¯À¸¤·¤¿»þ¤Î execlp ¤È execvp ¤Î¤Õ¤ë¤Þ¤¤¤ÏÎò»ËŪ¤Ê´·½¬¤¬¤¢¤ë¤¬ÅÁÅýŪ¤Ëµ­ºÜ¤µ¤ì¤Æ¤ª ¤é¤º¡¢¤«¤Ä POSIX ɸ½à¤Ç¤âÀë¸À¤µ¤ì¤Æ¤¤¤Ê¤¤¡£BSD(¤Þ¤¿¤ª¤½¤é¤¯Â¾ ¤Î¥·¥¹¥Æ¥à)¤Ï¤â¤· ETXTBSY ¤ËÁø¶ø¤·¤¿¾ì¹ç¼«Æ°Åª¤ËÃæÃǤ·¡¢ºÆ »î¹Ô¤¹¤ë¡£ Linux ¤Ï¤½¤ì¤ò¥Ï¡¼¥É¥¨¥é¡¼¤È¤·¤Æ¼è¤ê°·¤¤Â¨ºÂ¤ËÊÖ¤Ã¤Æ ¤¯¤ë¡£

ÅÁÅýŪ¤Ë¡¢´Ø¿ô execlp ¤È execvp ¤Ï¤³¤ì¤é 2 ¤Ä¤Î´Ø¿ô¼«¿È¤¬ÊÖ¤¹ ENOMEM ¤È E2BIG ¤È¾å¤ÇÀâÌÀ¤µ¤ì¤¿¥¨¥é¡¼¤ò½ü¤¤¤ÆÁ´¤Æ¤Î¥¨¥é¡¼¤ò̵»ë¤·¤Æ¤¤¤¿ ¤¬¡¢º£¤Ç¤Ï¾å¤ÇÀâÌÀ¤·¤Æ¤¤¤Ê¤¤¤É¤Î¤è¤¦¤Ê¥¨¥é¡¼¤¬È¯À¸¤·¤¿ ¾ì¹ç¤Ç¤âÊ֤äƤ¯¤ë¤è¤¦Êѹ¹¤µ¤ì¤¿¡£  

½àµò

execl, execv, execle, execlp, execvp ¤Ï IEEE Std1003.1-88 (``POSIX.1'') ¤Ë½àµò¤¹¤ë¡£


 

Index

̾Á°
½ñ¼°
ÀâÌÀ
ÊÖ¤êÃÍ
¥Õ¥¡¥¤¥ë
¥¨¥é¡¼
´ØÏ¢¹àÌÜ
¸ß´¹À­
½àµò

 
 
 
 
Google
  Web Linuxinfor   
 

Home :: Copyright :: Privacy :: Credits :: Get a free Linuxinfor Email Account

Document on this page is part of "Linuxinfor Man Pages in HTML Format: man3". See Index Page for more info about Authorship and Copyright.

1999-2008 Linuxinfor.com. No rights reserved.