c语言每隔1秒向文件中写入一行记录,类似日志记录

来源:互联网 发布:2016淘宝手机开店认证 编辑:程序博客网 时间:2024/06/07 17:52

读写一个文件test.txt,每隔1秒向文件中写入一行记录,直到按Ctrl-C终止。下次启动程序时在test.txt文件末尾追加记录,并且序号能够接续上次的序号。

#include <stdio.h>#include <time.h>#include <stdlib.h>#include <string.h>#include <unistd.h>int main(void) {    FILE *fp;    fp = fopen("test.txt", "a+");    if (fp == NULL) {        perror("Open test.txt error");        exit(1);    }    time_t t;    struct tm *info;    char *infostr;    long num;    char lastLine[512];        fseek(fp, 0, SEEK_SET);    while(!feof(fp)) {        memset(lastLine, 0x00, 512);        fscanf(fp, "%[^\n]\n", lastLine);    }    printf("lastLine: %s\n", lastLine);    num = atoi(lastLine) > 0 ? atoi(lastLine)+1 : 1;    printf("last num: %ld\n", num);        while(1) {        t = time(NULL);        info = localtime(&t);        infostr =  asctime(info);        fprintf(fp,"%ld\t %d-%d-%d  %d:%d:%d\n", num, 1900+info->tm_year, 1+info->tm_mon, info->tm_mday,info->tm_hour,info->tm_min,info->tm_sec);        printf("[INFO]: %ld\t %d-%d-%d  %d:%d:%d\n", num, 1990+info->tm_year, 1+info->tm_mon, info->tm_mday,info->tm_hour,info->tm_min,info->tm_sec);           num++;        fflush(fp);        sleep(1);    }    fclose(fp);    return 0;}


0 0