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 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
|
/** err1.c **/
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <signal.h>
#include <stdint.h>
void h1(int signal)
{
printf("Interception signal SIGABRT (%d)\n", SIGABRT);
exit(1);
}
int main(){
int a = INT32_MAX ;
signal(SIGABRT,h1);
printf("Taille int = %d\n\t a= %d\n\t a+1 = ...",sizeof(int), a);
printf("%d\n", a+1);
return(0);
}
/********* Compilation et exécution (Cygwin - gcc version 11.4.0)
$ gcc -ftrapv err1.c -o err1
$ ./err1
Taille int = 4
a= 2147483647
a+1 = ...Interception signal SIGABRT (6)
Compilation sans l'option -ftrapv
$ gcc err1.c -o err1
$ ./err1
Taille int = 4
a= 2147483647
a+1 = ...-2147483648
*/ |