Bonjour,
je vais essayer d'etre clair:
je fais un minishell,
imaginons que j'y tape la commande cat
un sous shell va s'ouvrir,
si je fait ctrl C
cela va quitter mon programme...
Je souhaiterai pouvoir recuperer ce signal pour retourner a mon prompt...
Pour l'instant voila mon code qui va executer cat...
que dois-je y ajouter?
argv[0] va contenir cat
et exe contient le nom de mon programme.
J'espere que vous pourrais m'inspirer...
Merci par avance!
1 int execspl(char *argv[], char *exe)
2 {
3 int status;
4 pid_t pid;
5 int i;
6
7 if ((pid = fork()) == -1)
8 perror("fork");
9 else
10 if (pid == 0)
11 {
12 if (execvp(argv[0], argv) == -1)
13 {
14 printf("%s: %s: command not found\n", exe, argv[0]);
15 exit (127);
16 }
17 }
18 else
19 {
20 waitpid(pid, &status, 0);
21 if (WIFEXITED(status))
22 return WEXITSTATUS(status);
23 else
24 return 1;
25 }
26 }
Partager