Salut, j'ai un problème avec ce code. Lorsque j'utilise cette fonction, je n'ai aucun avertissement. :Prob comparaison de pointeurs et d'entiers dans C
void handler(int sig){
switch(sig) {
case SIGINT : { click++; fprintf(stdout,"SIGINT recu\n");
if(click == N){
exit(0);
}
}
case SIGALRM : fprintf(stdout,"SIGALRM received\n");
exit(0);
case SIGTERM: fprintf(stdout,"SIGTERM received\n");
exit(0);
}
}
Mais quand je réécris la fonction avec cette nouvelle version, j'ai une « comparaison entre pointeur et entier » avertissement sur l'instruction if:
void handler(int sig){
printf("Signal recu\n");
if(signal == SIGINT){
click++;
fprintf(stdout,"SIGINT received; Click = %d\n",click);
if(click == N){
fprintf(stdout,"Exiting with SIGINT\n");
exit(0);
}
} else if(signal == SIGALRM){
fprintf(stdout,"SIGALRM received\n");
exit(0);
} else if(signal == SIGTERM){
fprintf(stdout,"SIGTERM received\n");
exit(0);
}
que quelqu'un peut me dire où est le problème?
'click == N' quel type est N? 'signal == SIGINT' quels types sont signal et SIGINT? En outre, sur quelle ligne l'avertissement est-il signalé? –
Comment "clic", "signal" et "N" sont-ils définis? – Pointy
click est une variable globale initialisée à zéro, N est une constante. – Dimitri