#include #include #include #include char *itoa( int ); #define NUL 0 #define BUFLEN 200 int main( int ARGC, char *ARGV[] ) { int i; time_t now; struct tm *tmnow; FILE *datefile; char commstr[BUFLEN]; char inbuf[BUFLEN]; const char *filename = { "c:\\onceaday.lst" }; commstr[0] = NUL; for( i=1 ; itm_yday++; datefile = fopen( filename, "a+" ); if( datefile != NULL && fgets( inbuf, BUFLEN, datefile ) && tmnow->tm_yday == atoi( inbuf ) ){ while( fgets( inbuf, BUFLEN, datefile ) != NULL ){ inbuf[ strlen(inbuf)-1 ] = NUL; if( strcmp( commstr, inbuf ) == 0 ) exit(0); } }else{ fclose( datefile ); datefile = fopen( filename, "w" ); fputs( itoa( tmnow->tm_yday ), datefile ); fputc( '\n', datefile ); } fputs( commstr, datefile ); fputc( '\n', datefile ); fclose( datefile ); system( commstr ); return 0; } char itoabuf[20]; char * itoa( int val ) { int curr = 19; itoabuf[20] = NUL; do{ itoabuf[ curr-- ] = '0' + val % 10; val /= 10; }while( val ); return &itoabuf[curr+1]; }