Bonjour à tous,

Je suis sous Linux (Fedora 14).
Je réalise une application client/serveur TCP/IP.

Parfois coté client je reçois l'erreur "L’appel a été interrompu par un signal." sur select.

Pour contourner l'erreur je fais:

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
 
...
else if (ret < 0)
{
      perror("select");
 
       if (errno == EINTR)
       {
             continue;
       }
 
       kill(Fils_Un, SIGINT);
       kill(Fils_Deux, SIGINT);
       exit(EXIT_FAILURE);   
}
Je ne pense pas que traiter l'erreur avec continue soit la bonne solution.

Pouvez-vous m'indiquer comment traiter efficacement cette erreur?
Est-il possible de connaitre le signal qui provoque cette erreur?
Faut-il utiliser sigaction avec SA_RESTART?

Merci d'avance.