我试图用C系统调用来解决这个问题。 我想创建一个儿子,它将执行键盘读取的程序。 这是我到目前为止实施的......
void main(void) {
char array[100];
char character;
char i = 0;
do {
character = getchar();
array[i] = character;
i++;
}
while (character != '\n');
array[i-1] = '\0';
pid_t pid;
pid = fork();
if (pid == -1) {
printf ("error");
}
else if (pid == 0)
{
if (execvp(*array, argv) < 0) { /* execute the command */
printf("*** ERROR: exec failed\n");
exit(1);
}
else {
int i;
for (i = 0; i < 10; i++)
{
printf("parent: %d\n", i);
sleep(1);
}
exit(0);
}
}
}
这有什么不对? (不要注意括号..:D) 谢谢你的帮助!
答案 0 :(得分:1)
有些错误:
while (character != '\n');
将无所事事或永远陷入困境。argv
,更不要在将其作为参数传递给execvp
之前给它赋值。