J'écris actuellement mon propre programme shell. Ce shell simple peut simplement exécuter des commandes.Comment gérer les entrées dans un programme C shell pendant l'exécution
Lors de l'exécution de commandes telles que vi ou calc nécessitant une entrée du terminal, la commande est exécutée et attend l'entrée de l'utilisateur. Mais je suis incapable de donner n'importe quelle entrée sur l'écran.
Comment l'entrée doit-elle être gérée pendant la fourchette et l'exec?
Voici le morceau de code qui exécute les commandes:
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;
}
}
} ~
Merci,
Est-ce ce devoir? – msw