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[]);
À̵é ÇÔ¼öÀÇ Ãʱâ ÀÎÀÚ´Â ½ÇÇàµÇ¾î¾ß ÇÏ´Â ÆÄÀÏÀÇ °æ·Î¸íÀÌ´Ù.
const char *arg ¿Í execl, execlp, ±×¸®°í execle ÇÔ¼öµé¿¡ ÀÖ´Â ¿¬¼ÓÀûÀÎ °ÍµéÀº arg0, arg1, ..., argn µîÀ¸·Î »ý°¢ÇÒ ¼ö ÀÖ´Ù. ±×°ÍµéÀº ½ÇÇà ÇÁ·Î±×·¥ÀÌ ÀÌ¿ëÇÒ ¼ö ÀÖ´Â ÀÎÀÚ ¸®½ºÆ®¸¦ ³ªÅ¸³»´Â Çϳª³ª ±×ÀÌ»óÀÇ null·Î ³¡³ ¹®ÀÚ¿À» °¡¸®Å²´Ù.
ÆíÀǸ¦ À§ÇØ, óÀ½ ÀÎÀÚ´Â ½ÇÇàµÇ¾î¾ß ÇÒ ÆÄÀÏÀÇ À̸§ÀÌ´Ù. ÀÎÀÚ ¸®½ºÆ®´Â ¹Ýµå½Ã NULL Æ÷ÀÎÅÍ·Î ³¡³ª¾ß ÇÑ´Ù.
execv ¿Í execvp ÇÔ¼ö´Â »õ·Î¿î ÇÁ·Î±×·¥ÀÌ ÀÌ¿ëÇÒ¼ö ÀÖ´Â ÀÎÀÚ ¸®½ºÆ®¸¦ ³ªÅ¸³»´Â null·Î ³¡³ ¹®ÀÚ¿ÀÇ Æ÷ÀÎÅÍ ¹è¿À» Á¦°øÇÑ´Ù. Æí¸®¸¦ À§ÇØ, ù ÀÎÀÚ´Â ½ÇÇàµÇ¾î¾ß ÇÒ ÆÄÀÏ°ú °ü·ÃµÈ ÆÄÀÏ À̸§ À» °¡¸®ÄÑ¾ß ÇÑ´Ù. Æ÷ÀÎÅÍ ¹è¿Àº ¹Ýµå½Ã NULL Æ÷ÀÎÅÍ·Î ³¡³ª¾ß ÇÑ´Ù.
execle ÇÔ¼ö´Â ¶ÇÇÑ ½ÇÇà ÇÁ·Î¼¼¼ÀÇ È¯°æº¯¼ö¸¦ ÁöÁ¤ÇØ¾ß Çϸç, ÆĶó¹ÌÅÍ ¸®½ºÆ®¿¡ ÀÖ´Â ÀÎÀÚ ¸®½ºÆ®³ª Ãß°¡ÀûÀÎ ÆĶó¹ÌÅ͸¦ °¡Áö°í ÀÖ´Â argv ¹è¿¿¡ ´ëÇÑ Æ÷ÀÎÅ͸¦ ³¡¸¶Ä¡µµ·Ï NULL Æ÷ÀÎÅÍ°¡ µÚµû¶ó ¿Â´Ù. ÀÌ·¯ÇÑ Ãß°¡ÀûÀÎ ÆĶó¹ÌÅÍ´Â null·Î ³¡³ ¹®ÀÚ¿¿¡ ´ëÇÑ Æ÷ÀÎÅÍ ¹è¿ÀÌ¸ç ¹Ýµå½Ã NULL ·Î ³¡³ª¾ß ÇÑ´Ù. ´Ù¸¥ ÇÔ¼öµéÀº ÇöÀç ÇÁ·Î¼¼½º¿¡ ÀÖ´Â ¿ÜºÎ º¯¼ö environ ¿¡¼ »õ·Î¿î ÇÁ·Î¼¼½º À̹ÌÁö¸¦ À§ÇÑ È¯°æ º¯¼ö¸¦ °¡Á®¿Â´Ù.
À̵é ÇÔ¼öµé Áß ¸î¸îÀº Ưº°ÇÑ Àǹ̸¦ °¡Áö°í ÀÖ´Ù.
¸¸ÀÏ ÁöÁ¤µÈ ÆÄÀÏ À̸§ÀÌ slash(/) ¹®ÀÚ¸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â´Ù¸é execlp ¿Í execvp ÇÔ¼ö´Â ½ÇÇàÆÄÀÏÀ» ã±â À§ÇØ shell ÀÇ ÇൿÀ» º¹»çÇÑ´Ù. Ž»ö °æ·Î´Â PATH º¯¼ö¿¡ ÁöÁ¤µÈ °æ·ÎÀÌ´Ù. ÀÌ º¯¼ö°¡ ÁöÁ¤µÇÁö ¾Ê´Â´Ù¸é, ±âº» °æ·Î ``:/bin:/usr/bin''°¡ »ç¿ëµÈ´Ù. Ãß°¡ÀûÀ¸·Î, ¾î¶² ¿¡·¯µéÀº Ưº°ÇÏ°Ô Ã³¸®µÈ´Ù.
¸¸ÀÏ Çã°¡±ÇÀÌ ÆÄÀÏ¿¡ ±ÝÁöµÇ¾î ÀÖ´Ù¸é ( execve ´Â EACCES¸¦ ¹ÝȯÇÑ´Ù.), À̵é ÇÔ¼öµéÀº Ž»ö °æ·ÎÀÇ ³ª¸ÓÁö¸¦ °è¼ÓÇؼ Ž»öÇÑ´Ù. ±×·¯³ª ¸¸ÀÏ ¾î¶² ´Ù¸¥ ÆÄÀÏÀÌ ¹ß°ßµÈ´Ù¸é, Àü¿ª º¯¼ö errno ¸¦ EACCES·Î ¼³Á¤ÇÏ°í ¹ÝȯµÈ´Ù.
¸¸ÀÏ ÆÄÀÏÀÇ Çì´õ°¡ ÀνĵÇÁö ¾Ê´Â´Ù¸é( execve ´Â ENOEXEC¸¦ ¹ÝȯÇÑ´Ù), À̵é ÇÔ¼öµéÀº ù ÀÎÀڷνá ÆÄÀÏÀÇ °æ·Î¿¡ ÀÖ´Â shellÀ» ½ÇÇàÇÑ´Ù. (¸¸ÀÏ ÀÌµé ½Ãµµ°¡ ½ÇÆÐÇÑ´Ù¸é, Ãß°¡ÀûÀΠŽ»öÀº ÇàÇØÁöÁö ¾Ê´Â´Ù.)
ÆÄÀÏÀ» ½ÇÇàÇÏ´Â µ¿¾È ¿¡·¯°¡ ³ªÅ¸³µÀ» ¶§ execlp ±×¸®°í execvp ÀÇ ÇൿÀº ¿ª»çÀû °ü½À¿¡ µû¸¥´Ù. ±×·¯³ª ÀüÅëÀûÀ¸·Î ¹®¼ÈµÇÁö ¾ÊÀ¸¸ç POSIX Ç¥ÁØ¿¡µµ ÁöÁ¤µÇÁö ¾Ê´Â´Ù. BSD(±×¸®°í ´Ù¸¥ ½Ã½ºÅÛ)´Â ÀÚµ¿ÀûÀ¸·Î sleepÀ» ÇÏ¸ç ¸¸ÀÏ ETXTBSY¸¦ ¸¸³´Ù¸é ´Ù½Ã ½ÃµµÇÑ´Ù. Linux´Â ¾î·Á¿î ¿¡·¯·Î ´ëÇÏ°í ¹Ù·Î ¹ÝȯÇÑ´Ù.
ÀüÅëÀûÀ¸·Î, ÇÔ¼ö execlp ¿Í execvp ´Â À§¿¡ ±â¼úµÈ °Íµé ±×¸®°í ENOMEM ±×¸®°í E2BIG¸¦ Á¦¿ÜÇÑ ¸ðµç ¿¡·¯¸¦ ¹«½ÃÇÏ¸ç ¸®ÅϵȴÙ. À̵é ÇÔ¼ö´Â À§¿¡ ±â¼úµÈ °Íµé ÀÌ¿ÜÀÇ ¿¡·¯¸¦ ¸¸³´Ù¸é ¹Ù·Î ¸®ÅϵȴÙ.