In C, a function always returns its value to the calling function and never to itself (if return type is not void). Like,
i
most operating systems call main like this:
exit(main(argc, argv, envp));