C. Expert programming-program destroyed by compiler date
# Include
# Include
# Include
# Include
# Define CHOICE 2 # define FILEPATH "/root/date. c "char global_buffer [120]; // NO.1 use the globally declared array # if CHOICE = 1 char * local_time (char * filename) {struct tm * tm_ptr; struct stat stat_block; stat (filename, & stat_block); tm_ptr = localtime (& stat_block.st_mtime); strftime (global_buffer, sizeof (global_buffer), "% a % B % e % T % Y ", tm_ptr); printf ("using global array! \ N "); return global_buffer;}/* No. 2 explicitly allocates some memory and saves the returned value */# elif CHOICE = 2 char * local_time (char * filename) {struct tm * tm_ptr; struct stat stat_block; char * buffer = (char *) malloc (120); stat (filename, & stat_block); tm_ptr = localtime (& stat_block.st_mtime ); strftime (buffer, 120, "% a % B % e % T % Y", tm_ptr); printf ("using malloc memory! \ N "); return buffer;} // use a static array # else char * local_time (char * filename) {struct tm * tm_ptr; struct stat stat_block; static char buffer [120]; stat (filename, & stat_block); tm_ptr = localtime (& stat_block.st_mtime); strftime (buffer, sizeof (buffer ), "% a % B % e % T % Y", tm_ptr); printf ("using static array! \ N "); return buffer ;}# endifint main () {char * s = FILEPATH; # if CHOICE = 1 // char * ptr = (char *) malloc (120); char * p = local_time (s); printf ("% s \ n", p ); # elif CHOICE = 2 char * p = local_time (s); printf ("% s \ n", p); // free (p ); # elsechar * p = local_time (s); printf ("% s \ n", p); # endif}