Спасибо, момент прояснил.Вот некоторые выводы, которые я сделал.
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
// размер программы 8648
return 5; // start up код вызывает exit(); получается exit(main())
exit(5); // ISO C
// exit() закрывает I/O вызывая fclose()
// следующие вызовы немедленно возвращают управления ядру
// размер программы немного больше 8696
_Exit(5); // ISO C (stdlib)
_exit(5); // POSIX (unistd)
// если нет вызова exit() или return, то
// согласно С99 возвращается 0,
// до С99 возвращаемое значение не определено
}