linux man page : execl - ÇÁ·Î±×·¥À» ½ÇÇà½ÃŲ´Ù.
ÃÑ ÆäÀÌÁö ¼ö : 3224

Àüü ÇÔ¼ö/¿ë¾î»çÀü
Facebook Joinc ±×·ì   Joinc QA »çÀÌÆ®



joinc´Â Firefox¿Í chrome¿¡¼­ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼­´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù.

exec

ÇÁ·Î±×·¥À» ½ÇÇàÇÑ´Ù.

»ç¿ë¹ý

#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°è¿­ ÇÔ¼öµéÀº ÇöÀçÀÇ ÇÁ·Î¼¼½º À̹ÌÁö¸¦ »õ·Î¿î ÇÁ·Î¼¼½º À̹ÌÁö·Î µ¤¾î¾´´Ù.

»õ·Î¿î ÇÁ·Î¼¼½ºÀÇ À̹ÌÁö´Â ½ÇÇà ÆÄÀÏÀ» ½ÇÇàÇØ¼­ ¾ò´Â´Ù. ±×·¯¹Ç·Î À̵é ÇÔ¼ö´Â °øÅëÀûÀ¸·Î ½ÇÇàÇÒ ÆÄÀÏÀÇ °æ·ÎÁ¤º¸¸¦ °¡Áø´Ù.

execl(), execlp(), execle() ÇÔ¼ö´Â ¸Å°³ º¯¼ö arg0, arg1, ..., argn À» °¡Áø´Ù. ÀÌ ¸Å°³ º¯¼ö´Â ÇÁ·Î±×·¥ÀÇ ½ÇÇàÀÎÀÚ·Î ³Ñ¾î°£´Ù. ´õ ÀÌ»ó ¸Å°³º¯¼ö°¡ ¾øÀ» ¶§´Â ¹Ýµå½Ã NULLÀ» ¸Å°³ º¯¼ö·Î ÁöÁ¤ÇØ¾ß ÇÑ´Ù. ù¹øÂ° ¸Å°³ º¯¼ö´Â °æ·Î¸¦ Æ÷ÇÔÇÑ ½ÇÇàÆÄÀÏÀÇ À̸§ÀÌ´Ù.

execv()¿Í execvp ÇÔ¼ö´Â ¸¶Áö¸· ¿ø¼Ò°¡ NULLÀ» °¡¸®Å°´Â ¹è¿­·Î ÇÁ·Î±×·¥ ½ÇÇàÀÎÀÚ¸¦ ³Ñ±ä´Ù. ù¹øÂ° ¸Å°³ º¯¼ö´Â °æ·Î¸¦ Æ÷ÇÔÇÑ ½ÇÇà ÇÁ·Î±×·¥ÀÇ À̸§ÀÌ´Ù. ¹è¿­ÀÇ ¸¶Áö¸· ¿ø¼Ò´Â ¹Ýµå½Ã NULLÀ̾î¾ß ÇÑ´Ù.

execle()ÇÔ¼ö´Â ½ÇÇà ÇÁ·Î±×·¥ À̸§°ú ½ÇÇàÀÎÀÚ¿Ü¿¡ ȯ°æº¯¼öµµ ³Ñ±æ ¼ö ÀÖ´Ù. ȯ°æ º¯¼ö °ªÀº ¹è¿­·Î ³Ñ¾î°£´Ù. ¹è¿­ÀÇ ¸¶Áö¸·Àº ¹Ýµå½Ã NULLÀ̾î¾ß ÇÑ´Ù.

¹Ýȯ °ª

execl ÇÔ¼ö´Â º¸Åë return À» ÇÏÁö ¾Ê´Â´Ù. ¸¸¾à returnÀ» ÇÑ´Ù¸é ¿¡·¯°¡ ÀϾ °æ¿ì·Î -1 À» ³Ñ°ÜÁØ´Ù.

¿¹Á¦

execlÇÔ¼ö·Î ½© ÇÁ·Î±×·¥ ½ÇÇà
#include <unistd.h> 
 
int main() 
{ 
    execl("/bin/sh", "/bin/sh", NULL); 
} 
 

execleÇÔ¼ö·Î ȯ°æº¯¼öµµ ÇÔ²² ³Ñ±è
#include <unistd.h> 
#include <string.h> 
 
int main(int argc, char **argv) 
{ 
    char *env[]={"MYHOME=seoul", "MYTEST=1234", (char *)0}; 
 
    execle("/bin/sh", "sh", NULL, env); 
    perror(); 
} 
 
½© ½ÇÇà ÈÄ env¸í·ÉÀ¸·Î MYHOME, MYTEST °ªÀ» È®ÀÎÇÒ ¼ö ÀÖ´Ù.


EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù.