编程环境:vs2008
实现功能:调用系统时间,每秒打印一个log信息到TXT文件中,并printf输出到窗口,每个小时生成一个log文件。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
int main()
{
FILE *fp;
time_t Second;
struct tm *NowTime;
struct tm OldTime = {0xff};
char filename[100];
long SysRunTimes = 0;
strcpy(filename, "C:/Users/Qin/Desktop/log/");
for(;;)
{
time (&Second);
NowTime = localtime (&Second);
if(( NowTime->tm_year != OldTime.tm_year) ||
( NowTime->tm_mon != OldTime.tm_mon) ||
( NowTime->tm_mday != OldTime.tm_mday) ||
( NowTime->tm_hour != OldTime.tm_hour) )
{
sprintf(filename + strlen("C:/Users/Qin/Desktop/log/"),
"%d_%d_%d_%dH.txt",
NowTime->tm_year+1900, NowTime->tm_mon + 1, NowTime->tm_mday, NowTime->tm_hour);
if((fp = fopen(filename, "r")) == NULL)
{
if((fp = fopen(filename, "w+")) == NULL)
{
printf("无法打开文件\n");
exit(0);
}
}
fclose(fp);
}
if(NowTime->tm_sec != OldTime.tm_sec)
{
if((fp = fopen(filename, "a+")) == NULL)
{
printf("无法打开文件\n");
exit(0);
}
fprintf(fp, "%04d_%02d_%02d %02d:%02d:%02d I want to output the log!%ld\n",
NowTime->tm_year+1900, NowTime->tm_mon + 1, NowTime->tm_mday, NowTime->tm_hour, NowTime->tm_min, NowTime->tm_sec, SysRunTimes );
printf("%04d_%02d_%02d %02d:%02d:%02d I want to output the log!%ld\n",
NowTime->tm_year+1900, NowTime->tm_mon + 1, NowTime->tm_mday, NowTime->tm_hour, NowTime->tm_min, NowTime->tm_sec, SysRunTimes++);
fclose(fp);
}
OldTime.tm_hour = NowTime->tm_hour;
OldTime.tm_sec = NowTime->tm_sec;
}
}