}
return ERRCODE_SUCC;
}
+
+
/**
* @param {uint32_t} time 时间戳
* @param {char} *p_time 字符串
- * @param {bool} include_seconds 是否包含秒
- * @param {bool} include_year 是否包含年份
- * * @param {char} 隔断符
+ * @param {char} date_separator 日期分隔符
+ * @param {char} time_separator 时间分隔符
+ * @param {date_format_t} format 日期格式选项
* @brief 通过时间戳获取日期
*/
-errcode_t uapi_get_TIME_STR(uint32_t time, char *p_time, char separator, bool include_seconds, bool include_year)
+errcode_t uapi_get_TIME_STR(uint32_t time, char *p_time, char date_separator, char time_separator, date_format_t format)
{
if (p_time == NULL)
{
return ERRCODE_FAIL;
}
- // 根据需要格式化日期时间字符串,包括时分秒和分隔符
- if (include_seconds)
+ switch (format)
{
- if (include_year)
- {
- sprintf(p_time, "%04d%c%02d%c%02d %02d%c%02d", timeinfo->tm_year + 1900, separator, timeinfo->tm_mon + 1, separator,
- timeinfo->tm_mday, timeinfo->tm_hour, separator, timeinfo->tm_min);
- }
- else
- {
- sprintf(p_time, "%02d%c%02d %02d%c%02d", timeinfo->tm_mon + 1, separator,
- timeinfo->tm_mday, timeinfo->tm_hour, separator, timeinfo->tm_min);
- }
- }
- else
- {
- if (include_year)
- {
- sprintf(p_time, "%04d%c%02d%c%02d %02d%c%02d", timeinfo->tm_year + 1900, separator, timeinfo->tm_mon + 1, separator,
- timeinfo->tm_mday, timeinfo->tm_hour, separator, timeinfo->tm_min);
- }
- else
- {
- sprintf(p_time, "%02d%c%02d %02d%c%02d", timeinfo->tm_mon + 1, separator,
- timeinfo->tm_mday, timeinfo->tm_hour, separator, timeinfo->tm_min);
- }
+ case DATE_Y_M_D:
+ sprintf(p_time, "%04d%c%02d%c%02d", timeinfo->tm_year + 1900, date_separator, timeinfo->tm_mon + 1, date_separator, timeinfo->tm_mday);
+ break;
+ case DATE_Y_M_D_H_M:
+ sprintf(p_time, "%04d%c%02d%c%02d %02d%c%02d", timeinfo->tm_year + 1900, date_separator, timeinfo->tm_mon + 1, date_separator,
+ timeinfo->tm_mday, timeinfo->tm_hour, time_separator, timeinfo->tm_min);
+ break;
+ case DATE_M_D:
+ sprintf(p_time, "%02d%c%02d", timeinfo->tm_mon + 1, date_separator, timeinfo->tm_mday);
+ break;
+ case DATE_H_M_S:
+ sprintf(p_time, "%02d%c%02d%c%02d", timeinfo->tm_hour, time_separator, timeinfo->tm_min, time_separator, timeinfo->tm_sec);
+ break;
+ case DATE_H_M:
+ sprintf(p_time, "%02d%c%02d", timeinfo->tm_hour, time_separator, timeinfo->tm_min);
+ break;
+ case DATE_M_S:
+ sprintf(p_time, "%02d%c%02d", timeinfo->tm_min, time_separator, timeinfo->tm_sec);
+ break;
+ case DATE_M_D_H_M:
+ sprintf(p_time, "%02d%c%02d %02d%c%02d", timeinfo->tm_mon + 1, date_separator, timeinfo->tm_mday, timeinfo->tm_hour, time_separator, timeinfo->tm_min);
+ break;
+ default:
+ sprintf(p_time, "%04d%c%02d%c%02d %02d%c%02d%c%02d", timeinfo->tm_year + 1900, date_separator, timeinfo->tm_mon + 1, date_separator,
+ timeinfo->tm_mday, timeinfo->tm_hour, time_separator, timeinfo->tm_min, time_separator, timeinfo->tm_sec);
+ break;
}
return ERRCODE_SUCC;
}
-
-
/**
* @param {char} *p_time
* @param {char} 隔断符
#define MAX_TAR_READ_BUF 1024
int uapi_tar_file(const char *src_path,const char *tar_path,char *tarfilename)
{
- //const char *tarfilePath = "%s/exc_%d.tar";
- DIR *dir;
struct dirent *entry;
mtar_t tar;
size_t bytesRead = 0;
long tar_size = 0;
int ret = 0;
char *buffer = malloc(MAX_TAR_READ_BUF);
- if (buffer == NULL) return -1;
+ if (buffer == NULL)
+ return -1;
if(access(src_path, F_OK) == -1)
{
PRINT("%s does not exist!!!\r\n", src_path);
return -1;
}
- dir = opendir(src_path);
+ DIR *dir = opendir(src_path);
if (dir == NULL)
{
PRINT("unable to open %s\r\n",src_path);
ret = mkdir(tar_path, 0777);
if(ret == -1)
{
+ closedir(dir);
PRINT("mkdir %s failed \r\n",tar_path);
return -1;
}
ret = mtar_open(&tar, str, "w");
if (ret != MTAR_ESUCCESS)
{
+ closedir(dir);
PRINT("unable to open/create %s\r\n",str);
return -1;
}
fp = fopen(filePath, "r");
if(fp == NULL)
{
+ mtar_close(&tar);
+ closedir(dir);
PRINT("uable to open %s\r\n", filePath);
return -1;
}
break;
}
}
+ fclose(fp);
}
}