Bonjour,

je veux exécuter 2 programmes via mon programme. Le premier va s'exécuter lors d'un clic CTRL-C et le deuxième après 3 secondes du clic à l'aide de la fonction alarm().

Le problème est qu'après 3 secondes, le premier programme reste en exécution et le deuxième ne se déclenche pas.

Voilà mon programme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
char *fe,*fifo,*fs;
void prog1(int sig) {
    if(sig == SIGINT) {
	alarm(3);
	printf("Exécution du prog1\n");
	execlp("./prog1","./prog1",fe,fifo,NULL);
    }
}
void prog2(int sig) {
    if(sig == SIGALRM) {
	printf("Exécution du prog2\n");
	execlp("./prog2","./prog2",fifo,fs,NULL);
	exit(0);
    }
}
main(int argc, char * argv[])
{
if(argc!=4){printf("No args");exit(1);}
 
fe=argv[1];
fifo=argv[2];
fs=argv[3];
 
signal(SIGINT,prog1);
signal(SIGALRM,prog2);
while(1) {}
}
Merci pr vos renseignements.