Je ne comprends pas pourquoi mon code ne fonctionne pas.Que dois-je faire pour modifier ma fourche() en C pour bien fonctionner?
Ceci est mon code. Je ne sais pas pourquoi j'ai un segment d'erreur. Quelqu'un pourrait-il m'expliquer la raison?
#include <iostream>
#include <string>
#include <sys/types.h>
#include <unistd.h>
int id_process;
void manager_signal() {
kill (id_process, SIGKILL);
kill (getppid(),SIGKILL);
}
int main() {
id_process = fork();
if (id_process==-1) {
perror("ERROR to create the fork");
} else {
if (id_process != 0) {
printf("Father´s ID is %d \n", getpid());
alarm(5);
(void) signal (SIGALRM, manager_signal);
sleep (20);
printf ("Running to where the father can be\n");
alarm (0);
} else {
printf ("CHildren´s ID is %d \n", getpid());
for (;;) {
printf ("Children RUN FOREVER ^^");
sleep (2);
}
}
}
return 0;
}
est ce devoir? – ojblass
Pourrait être devoirs. Ou ce pourrait être quelqu'un qui commence à apprendre C/UNIX. Je vais laisser à l'essaim de décider mais je leur donnerai le bénéfice du doute. – paxdiablo
Cette question ne doit pas être étiquetée "traitement du signal". C'est une erreur compréhensible, mais quelqu'un avec une réputation plus élevée que moi devrait ré-étiqueter cette question. –