Минишелл проблемы с CD (C)

Я сделал простой мини-оболочку в C, и она работает, за исключениемcd команда. Когда я пытаюсь запустить его, ничего не происходит, за исключением того, что он создает дочерний процесс, который никогда не заканчивается. Например, после запускаcd в моей мини-оболочке мне нужно набратьexit дважды, чтобы выйти из мини-оболочки, а не стандартно один раз. Код: int debug = 0;

void safeQuit(){
    if (debug==1)
      printf("INFO: Parent process, pid=%d exiting.\n", getpid());
    exit(0);
}

    int main(int argc,char** argv) 
    {
    int pid, stat;
    char * Array_arg[50]; 
    char command_line[200];//user input
    if (argc>1)
      if (strcmp(argv[1],"-debug")==0)
        debug=1;
    while (1){
      printf("[minishell]> "+debug);
      gets(command_line);
      if (strcmp(command_line,"exit")==0)
        safeQuit();
      char * subcommand=strtok(command_line," ");  //divides the string according to the spaces
      int i=0;   
      while (subcommand!= NULL)//insert to array
      {
        Array_arg[i]=subcommand;
        subcommand=strtok(NULL," ");
        i++;
      } 
  Array_arg[i]='\0';
      if (fork()==0){
        if (debug==1)
          printf("INFO: child process, pid = %d, executing command %s\n", getpid(), command_line);
        execvp(Array_arg[0],Array_arg); //execution of cmd
      }
      else{
        pid=wait(&stat);
  }
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос