# Include <stdio. h> # include <time. h> # include <stdlib. h> # include <sys/STAT. h> # 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}