我正在尝试使用用户输入从子进程运行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);
答案 0 :(得分:0)
您的str
以及input
包含换行符。在致电execl
之前将其删除。