1#include <assert.h>2#include <stdio.h>3#include <stdlib.h>45/*6output:7testing8fun19fun110fun111fun112fun113fun114fun115fun116fun117fun118fun119fun120fun121fun122fun123fun124fun125fun126fun127fun128fun129fun130fun131fun132fun133fun134fun135fun136fun137fun238fun339done40end:41*/4243static void44fun1(void)45{46 puts("fun1");47}4849static void50fun2(void)51{52 puts("fun2");53}5455static void56fun3(void)57{58 puts("fun3");59 puts("done");60 fflush(stdout);61 _Exit(0);62}6364static void65fun4(void)66{67 puts("fun4");68}6970int71main(void)72{73 int i, r;7475 puts("testing");76 r = atexit(fun4);77 assert(r == 0);7879 r = atexit(fun3);80 assert(r == 0);8182 r = atexit(fun2);83 assert(r == 0);848586 for (i = 0; i < 29; i++) {87 r = atexit(fun1);88 assert(r == 0);89 }90 exit(EXIT_SUCCESS);9192 printf("failed");93 exit(EXIT_FAILURE);9495 return 1;96}