2014-12-03 1 views
0

사용자 입력이있는 하위 프로세스에서 exec 명령을 실행하려고하는데 인쇄 중이거나 작동하지 않습니다.execl()이 작동하지 않습니다/인쇄 중입니다.

char input[100]; 
int pid; 

printf("$ "); 
fgets(input, 100, stdin); 

while (strncmp(input, "exit", 4)){ 
    pid = fork(); 
    if(pid == 0){ 
     char str[105]; 
     strcpy(str, "/bin/"); 
     strcat(str, input); 
     printf("%s", str); 
     execl(str, input, NULL); 
     exit(0); 
    } 
    else if(pid < 0){  /* error while doing fork */ 
     exit(1); 
    } 
    else{ 
     wait(0); 
    } 

    printf("$ "); 
    fgets(input, 10, stdin); 
} 

exit(0); 
+1

어떤 종류의 오류 또는 디버그 정보가 있습니까? – EWit

+0

저는 C로 새로 왔습니다. 그것은 잘 컴파일하지만 내가 할 때 아무것도 인쇄하지 않습니다 – Mark

답변

0
귀하의 str

뿐만 아니라 input가 개행 문자를 포함 :

여기 내 코드입니다. 제거 후 execl으로 전화하십시오.

+0

모든 후행 공백을 잘라내는 것이 더 좋을 것입니다. –

+0

동일한 배열을 다시 사용해야하므로 트리밍을 사용하는 것이 좋은지 잘 모릅니다. – Mark