【程序练习】——每隔1秒向文件中写入一行记录
编程读写一个文件test.txt
,每隔1秒向文件中写入一行记录,类似于这样:
1 2009-7-30 15:16:42 2 2009-7-30 15:16:43
该程序应该无限循环,直到按Ctrl-C终止。下次再启动程序时在test.txt
文件末尾追加记录,并且序号能够接续上次的序号,比如:
1 2009-7-30 15:16:42 2 2009-7-30 15:16:43 3 2009-7-30 15:19:02 4 2009-7-30 15:19:03 5 2009-7-30 15:19:04
1 #include <stdio.h> 2 #include <string.h> 3 #include <errno.h> 4 #include <stdlib.h> 5 #include <time.h> 6 7 void writefile() 8 { 9 FILE *fp; 10 time_t timep; 11 struct tm *p; 12 int n = 10; 13 14 while(1){ 15 16 if((fp = fopen("text.txt","aw")) == NULL){ 17 perror("open file text.txt"); 18 exit(1); 19 } 20 time(&timep); 21 p = localtime(&timep); 22 23 if(fprintf(fp,"%d-%d-%d %d:%d:%d\n",p->tm_year + 1900,p->tm_mon,p->tm_mday,p->tm_hour,p->tm_min,p->tm_sec) < 0){ 24 printf("error!\n"); 25 } 26 27 fprintf(stdout,"%d-%d-%d %d:%d:%d\n",p->tm_year + 1900,p->tm_mon,p->tm_mday,p->tm_hour,p->tm_min,p->tm_sec); 28 fclose(fp); 29 sleep(1); 30 } 31 32 } 33 34 int main(int argc, char *argv[]) 35 { 36 writefile(); 37 return 0; 38 }