Я сейчас пишу свою собственную программу оболочки.Эта простая оболочка может просто выполнять команды.
При выполнении таких команд, как vi или calc, которые требуют ввода с терминала, команда выполняется и ожидает ввода от пользователя.Но я не могу дать никакого ввода на экране.
Как обрабатывать ввод во время форка и выполнения.
Вот фрагмент кода, который выполняет команды:
if((pid = fork()) < 0)
{
perror("Fork failed");
exit(errno);
}
if(pid == 0)
{
// Child process
if(execvp(arguments[0], arguments) == -1)
{
child_status = errno;
switch(child_status)
{
case ENOENT:
printf(" command not found \n");
break;
}
exit(errno);
}
}
else
{
// parent process
int wait_stat;
if(waitpid(pid , &wait_stat, WNOHANG) == -1)
{
printf(" waitpid failed \n");
return;
}
}
} ~
Спасибо,