linux操作系统编程——每隔一秒往文本文件写入时间

程序要求:

(1)读写一个test.txt文件,每隔1秒往文件中写入一行时间日期数据;

1、 2012-8-7 1:2:3

....

(2)下次启动程序时能够追加到原文件之后,并且序号能够衔接上原先序号;


程序如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.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");

        exit(-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(1);
    }

    return 0;
}



发布了66 篇原创文章 · 获赞 7 · 访问量 12万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章