execl()不工作/打印

时间:2014-12-03 17:21:54

标签: c exec

我正在尝试使用用户输入从子进程运行exec命令,但它不打印/工作。

这是我的代码:

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 个答案:

答案 0 :(得分:0)

您的str以及input包含换行符。在致电execl之前将其删除。