--- lbbs/src/common.c 2025/05/17 11:30:09 1.22 +++ lbbs/src/common.c 2025/06/01 03:07:42 1.26 @@ -14,6 +14,8 @@ * * ***************************************************************************/ +#define _POSIX_C_SOURCE 200112L + #include "common.h" #include "log.h" #include "menu.h" @@ -53,8 +55,9 @@ int port_client; volatile int SYS_server_exit = 0; volatile int SYS_child_process_count = 0; volatile int SYS_child_exit = 0; -volatile int SYS_menu_reload = 0; +volatile int SYS_conf_reload = 0; volatile int SYS_data_file_reload = 0; +volatile int SYS_section_list_reload = 0; static const char *weekday[] = { "天", "一", "二", "三", "四", "五", "六"}; @@ -62,26 +65,28 @@ static const char *weekday[] = { // Common function const char *get_time_str(char *s, size_t len) { - time_t curtime = time(NULL); - struct tm *loctime; - loctime = localtime(&curtime); + time_t curtime; + struct tm local_tm; - size_t j = strftime(s, len, "%Y年%m月%d日%H:%M:%S 星期", loctime); + time(&curtime); + localtime_r(&curtime, &local_tm); + size_t j = strftime(s, len, "%b %d %H:%M 星期", &local_tm); - if (j == 0 || j + strlen(weekday[loctime->tm_wday]) + 1 > len) + if (j == 0 || j + strlen(weekday[local_tm.tm_wday]) + 1 > len) { return NULL; } - strncat(s, weekday[loctime->tm_wday], len - 1 - j); + strncat(s, weekday[local_tm.tm_wday], len - 1 - j); return s; } void sig_hup_handler(int i) { - SYS_menu_reload = 1; + SYS_conf_reload = 1; SYS_data_file_reload = 1; + SYS_section_list_reload = 1; } void sig_term_handler(int i)