Programation c

Fermé
kadariana - 14 mai 2010 à 15:17
klintoff Messages postés 1 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 14 mai 2010 - 14 mai 2010 à 20:53
Bonjour,



j'ai un probleme j'ai un programme en c sur les signaus et j'ai pas comprent leurs travail bien
aider moi stp
voila les 2 programes,
le premier est
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>

int n;
void interrupt(int s)
{
printf("Display n: %d",++n);
printf("Ceci est un bon exercice pour comprendre le mecanisme des signaux...\n");
signal(s,interrupt);
}

int main (int argc, char* argv)

{
// initialisation du compteur de la ligne
n=0;
// pour des raisons pratiques...
printf("Mon PID est: %d\n", getpid());

signal(SIGUSR1,interrupt);
//boucle infinie
while(1)
{
pause();
}
return 0;
}

le deuxieme est.

#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>


//numero de processus actuel, et pid correspandant :
int proc_actuel=2,pid1,pid2;
//on donne la main au processus l'un apres l'autre :
void swap(int s)
{
if(proc_actuel==1)
{
printf("Main au processus 2\n");
kill(pid2,SIGUSR1);
//proc_actuel=0;
}
else
{
printf("Main au processus 1\n");
kill(pid1,SIGUSR1);
//proc_actuel=1;
}
//reprise :
alarm(1);
signal(s,swap);
}
void detruit(int s)
{
//l'ordononceur entraine dans sa chute les deux processus fils :
kill(pid1,SIGINT);
kill(pid2,SIGINT);
int mypid=getpid();
kill(mypid,SIGINT);
}

int main(int argc, char *argv[])
{
//recuperation des parametres
pid1=atoi(argv[1]);
pid2=atoi(argv[2]);
//verification des deux pid
if (pid1<0 || pid2<=0)
{
printf("Usage : miniordo<pid1> <pid2>\n");
printf("Execute de maniere alternative deux processus <pid1> et <pid2>.\n");
return 0;
}
//declaration des fonctions de traitement d'interruption :
signal(SIGALRM,swap);
signal(SIGINT,detruit);
//initialisation
printf("pressez CTRL-C pour quitter !\n");
printf("Mini-ordononceur pret.\n");
proc_actuel=0;
kill(pid1,SIGUSR1);
alarm(1);
//Boucle infinie :
while(1)
{
pause();
}
return 0;
}

1 réponse

klintoff Messages postés 1 Date d'inscription samedi 22 janvier 2005 Statut Membre Dernière intervention 14 mai 2010
14 mai 2010 à 20:53
voici mon adresse e-mail, ajoute moi je t'explique comment ça fonctionne

vbill@hotmail.com
0