文件IO 筆試題 作業:設計程式,獲取當前系統時間,把時間轉換為特定格式”yy年mm月dd日 星期x tt:mm:ss”,並每隔1s寫入到本地磁碟中一個叫做log.txt的文本中,如果文本不存在則創建。 代碼: /******************************************* ...
文件IO
筆試題
作業:設計程式,獲取當前系統時間,把時間轉換為特定格式”yy年mm月dd日 星期x tt:mm:ss”,並每隔1s寫入到本地磁碟中一個叫做log.txt的文本中,如果文本不存在則創建。
代碼:
/*****************************************************************************************************************
*
* file name : FileTime.c
* author : [email protected]
* data : 2024/05/09
* function : 實現獲取當前時間並每隔1秒寫入本地磁碟中一個叫做log.txt的文本中
* note : None
*
* CopyRight (c) 2024 [email protected] All Right Reseverd
*
* ****************************************************************************************************************/
#include<stdio.h>
#include<stdlib.h>
#include<unistd.h>
#include<time.h>
//用戶自定義緩衝區的大小
//#define BUFFRSIZE 512
int main(int argc, char const *argv[])
{
//1.由於寫入時間的文件路徑需要通過命令行傳遞,則需要分析命令行參數數量是否符合需求
if (2 != argc)
{
printf("Argument is invaild!\n");
exit(1);
}
//2.打開待寫入文件(wb),若文本不存在則創建文本
FILE *fp = fopen(argv[1],"w+b");
if (NULL == fp)
{
printf("Fopen %s is error!\n",argv[1]);
exit(1);
}
//3.獲取當前系統時間,並把時間轉換為特定格式“yy年mm月dd日 星期x tt:mm:ss”
// time_t Tseconds = time(NULL);
// struct tm *ft = localtime(&Tseconds);
// int tm_year = (ft->tm_year) + 1900;
// int tm_mon = (ft->tm_mon) + 1;
// int tm_mday = ft->tm_mday;
// int tm_wday = ft->tm_wday;
// int tm_hour = ft->tm_hour;
// int tm_min = ft->tm_min;
// int tm_sec = ft->tm_sec;
//定義年月日,星期,時分秒變數
int tm_year,tm_mon,tm_mday,tm_wday,tm_hour,tm_min,tm_sec;
//3.每隔1s寫入本地磁碟中一個叫做log.txt的文本中
while (1)
{
//4.獲取當前系統時間,並把時間轉換為特定格式“yy年mm月dd日 星期x tt:mm:ss”
time_t Tseconds = time(NULL);
struct tm *ft = localtime(&Tseconds);
tm_year = (ft->tm_year) + 1900; //年從1900年開始
tm_mon = (ft->tm_mon) + 1; //月份從0開始
tm_mday = ft->tm_mday;
tm_wday = ft->tm_wday;
tm_hour = ft->tm_hour;
tm_min = ft->tm_min;
tm_sec = ft->tm_sec;
fprintf(fp,"%d年%d月%d日,星期%d,%d:%d:%d",tm_year,tm_mon,tm_mday,tm_wday,tm_hour,tm_min,tm_sec);
//fwrite(data_buffer,BUFFRSIZE,1,fp);
fflush(fp); //刷新文件方便查看文件
fprintf(fp,"\n");
sleep(1); //休眠1秒
}
//5.完成寫入動作,關閉文件
fclose(fp);
return 0;
}
結果驗證: