開啟或新建檔案迴圈記錄系統時間
/*******************************************************************
*
* 檔名稱 : 檔案I/O中記錄系統時間
* 檔案作者 : mailLinL@163.com
* 建立日期 : 2024/05/09
* 檔案功能 : 開啟或建立檔案,並向檔案中寫入系統時間
* 注意事項 : None
*
* CopyRight (c) 2024 mailLinL@163.com All Right Reseverd
*
* *****************************************************************/
標頭檔案包含
#include <stdio.h>
#include "time.h"
#include <stdlib.h>
#include <unistd.h>
自定義函式介面
獲取當前系統時間,把時間轉換為特定格式”yy年mm月dd日 星期x tt:mm:ss”,並寫入到本地磁碟中一個叫做log.txt的文字中,如果文字不存在則建立。
/*******************************************************************
*
* 函式名稱: TimeWriter
* 函式功能: 向檔案中寫入系統時間,檔案不存在時自動建立
* 函式引數: none
* 返回結果:
* @dest 檔案流地址指標
* 注意事項: None
* 函式作者: mailLinL@163.com
* 建立日期: 2024/05/09
* 修改歷史:
* 函式版本: V1.0
* *****************************************************************/
void TimeWriter(FILE *dest)
{
//定義變數儲存time函式返回的秒數,並使用localtime函式轉換成當前的系統時間
long int data = 0;
struct tm *now = (struct tm *)calloc(1, sizeof(struct tm *));
if (NULL == dest)
{
printf("file open error\n");
exit(1);
}
while (1)
{
data = time(NULL);
now = localtime(&data);
fprintf(dest, "%d年%02d月%02d日-%d-%02d-%02d-%02d\n", now->tm_year + 1900, now->tm_mon + 1, now->tm_mday, now->tm_wday, now->tm_hour, now->tm_min, now->tm_sec);
usleep(500000);
}
}
主函式中呼叫測試
int main(int argc, char const *argv[])
{
// 判斷命令列輸入的引數是否有效
if (2 != argc)
{
printf("argument is error!\n");
exit(1);
}
// 判斷檔案地址是否有效
if (NULL == argv[1])
{
perror("File open if error!");
exit(1);
}
// 以追加方式開啟一個log.txt檔案,間隔1s將系統時間寫入檔案中
FILE *dest = fopen("log.txt", "ab");
TimeWriter(dest);
return 0;
}