Programmation système

Fermé
Kaoutar.T Messages postés 14 Date d'inscription mercredi 5 février 2014 Statut Membre Dernière intervention 7 juin 2014 - Modifié par Kaoutar.T le 30/04/2014 à 02:01
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 30 avril 2014 à 07:23
Bonjour,

je suis bloqué sur cet exercice j'aimerais bien m'aider .
Ecrire un programme qui crée un processus fils. Le père affichera à l'écran "ping"
alors que le fils affichera "pong", et ce de manière alternative. Pour cela vous
utiliserez les signaux "SIGUSR1" et "SIGUSR2" et vous regarderez le problème de
l'arrêt du processus.
j'ai pas pu intégré SIGUSR1 et SIGUSR2 dans mon code!
void pere(){
printf("ping");
fils();
return;
}
void fils(){
printf("pong");
pere();
return;
}
int main(){
pid_t pid;

if(pid=fork()!=0)
           pere();
return 0;
}

2 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 835
30 avril 2014 à 07:20
Bonjour,
Ce n'est pas bon l'algorithme.
Je te conseille la famille: https://forums.commentcamarche.net/forum/affich-37604388-que-fait-un-fork
N'hésite pas si tu as des questions.
Cdlt
0
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 2
30 avril 2014 à 07:23
Salut,

Normalement le père tout comme le fils doivent écouter les signaux SIGUSR1 et SIGUSR2 puis envoyer l'un l'autre le bon signal.

Exemple si le père écoute SIGUSR1 il enverra un signal au fils sur SIGUSR2 et le fils qui écoute SIGUSR2 répondra sur SIGUSR1

Pour écouter les signaux:
http://manpagesfr.free.fr/man/man2/sigaction.2.html

Pour envoyer des signaux:
http://manpagesfr.free.fr/man/man2/kill.2.html


0