using exit(EXIT_SUCCESS) or exit(EXIT_FAILURE) in AVR or any other microcontroller
C11 5.1.2.1(2) 


  The effect of program termination in a freestanding environment is implementation-defined.


exit() may or,may not, do what you want.  

http://www.atmel.com/webdoc/avrlibcreferencemanual/group__avr__stdlib_1ga137096a48cc0c731052cadfb69c39b34.html

looks like it will halt sort-of.

if you want a restart do this instead:

http://www.atmel.com/webdoc/avrlibcreferencemanual/FAQ_1faq_softreset.html

code:

#include &lt;avr/wdt.h&gt;

...

#define soft_reset()        \
do                          \
{                           \
    wdt_enable(WDTO_15MS);  \
    for(;;)                 \
    {                       \
    }                       \
} while(0)


Other microcontrollers will have other means of performing a software-triggered reset.