12.07.2015 Views

Langage Ca - Pages de Michel Deloizy - Free

Langage Ca - Pages de Michel Deloizy - Free

Langage Ca - Pages de Michel Deloizy - Free

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

• Gestion par va_list, va_start, va_arg, va_end→ définis dans stdarg.h136 Exemplevoid ErrPrintf(int ext, const char *fmt, …){va_list ap;printf(ext ? "Erreur : " : "Avertissement : ");va_start(ap,fmt);vprintf(fmt,ap);va_end(ap);if(ext) exit(ext);}…F = fopen(nf="toto.dat","r");if(F==NULL) ErrPrintf(1,"Le fichier '%s' ne peut être ouvert.\n",nf);…137 Signal• Gestion d'événements exceptionnels• Défini dans signal.hvoid (*signal(intint sig, void (*handlerhandler)( )(int)))(int);138 <strong>Langage</strong> CSignaux :Détermine la façon dont les signaux ultérieurs seront traités.handler : fonction <strong>de</strong> traitement du signalFonctions prédéfinies :SIG_DFL : comportement par défautSIG_IGN : le signal sera ignoréRetour : handler ou SIG_ERR en cas d'erreurSIGABRT: arrêt anormalSIGFPE : erreur arithmétiqueSIGILL : instruction illégaleSIGINT : appel au système invali<strong>de</strong>SIGSEGV: accès mémoire interditSIGTERM: <strong>de</strong>man<strong>de</strong> d'arrêt du programmeQuand signal survient :1. Le comportement par défaut est rétabli2. La fonction handler est appelée3. Si la fonction rend la main, le programme se poursuit à l'endroit t où il avait été interrompu

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!