以下C语言程序是linux服务器中记录日志的一种方法,系统每一分钟会向test.txt写入一条记录,代码中使用了tm结构体。试通过网上查找资料,给出tm结构体的原型,并对其中的成员进行标注,不需要对程序进行解释或说明。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <windows.h>
int main(int argc,const char *argv[])
{
FILE *file;
struct tm *t1;
time_t t;
char buf[100];
int line=1;
int c;
memset(buf,0,sizeof(buf));
if ((file=fopen("test.txt","a+"))<0)
{
perror("failed to open test.txt");
return(-1);
}
while ((c=getc(file))!=EOF)
if (c=='\n')
line++;
while(1)
{
time(&t);
t1=localtime(&t);
sprintf(buf,"%d,%d-%d-%d %d:%d:%d\n",line++,t1->tm_year + 1900,t1->tm_mon + 1,t1->tm_mday,t1->tm_hour,t1->tm_min,t1->tm_sec);
fwrite(buf,sizeof(char),strlen(buf),file);
fflush(file);
Sleep(6000);
}
return 0;
}