안녕하세요

exevce에 대해서 궁금해서 글 올려보아요~

 


  3 #include <stdio.h>
  4 #include <unistd.h>
  5
  6 char **_envp;
  7
  8 int main(int argc, char **argv, char **envp)
  9 {
 10
 11   char pst[512]={0};
 12   char cmd[512]={0};
 13   char *args[4]={0};
 14
 15    _envp = envp;
 16
 17   if(argc < 2){
 18
 19      sprintf(cmd,"./taeha_execve.sh");
 20      args[0] = "sh";
 21      args[1] = "-c";
 22      args[2] = cmd;
 23      args[3] = 0;
 24
 25      printf("하하 1");
 26      execve("/bin/sh", args, _envp);
 27      printf("하하 2");
 28      exit(0);
 29   }
 30
 31    //execve( "./show_envp", argv, envp);
 32    printf( "이 메시지가 보이면 지정된 프로그램이 없거나 어떤문제로 실행되지 못한 것입니다.");
 33
 34 }

 

위의 소스를 돌리니...taeha_execve.sh 만 돌아가고...하하1과 하하2가 나오지 않네요

어떻게 돌아가는지 테스트 할 수 있는 방법 좀 알려주세요;;

 

하하1 실행(다시 실행, 즉 쉘스크립트 실행이라서 보이지 않는것인가요?)

 

돌아가는 순서가..어떻게 동작하는지 궁금하네요