In C we have two predefined values i.e. EXIT_SUCCESS and EXIT_FAILURE to return termination status which are defined as 0 and 1.
So when we say exit(0) it means successful completion of the program and when we say exit(1) then it means unsuccessful termination.
Example see the following program if you press the ctrl+c i.e. SIGINT then it returns the 1 which can be caught in the shell in case of normal termination it returns zero.
signal_proc()
{
printf("Normal Termination");
exit(1); // Abnormal Termination
}
main()
{
int i;
signal(SIGINT,signal_proc);
for(i=0; i<10000000; i++)
;
printf("Normal Termination");
exit(0)
}