| 29 |
#include "screen.h" |
#include "screen.h" |
| 30 |
#include "section_list.h" |
#include "section_list.h" |
| 31 |
#include "trie_dict.h" |
#include "trie_dict.h" |
| 32 |
|
#include "user_list.h" |
| 33 |
#include "user_priv.h" |
#include "user_priv.h" |
| 34 |
#include <errno.h> |
#include <errno.h> |
| 35 |
#include <signal.h> |
#include <signal.h> |
| 165 |
"注册用户数[\033[36m%d/%d\033[32m]\r\n" |
"注册用户数[\033[36m%d/%d\033[32m]\r\n" |
| 166 |
"从 [\033[36m%s\033[32m] 起,累计访问人次:[\033[36m%d\033[32m]\033[m\r\n", |
"从 [\033[36m%s\033[32m] 起,累计访问人次:[\033[36m%d\033[32m]\033[m\r\n", |
| 167 |
BBS_name, u_online, BBS_max_client, u_anonymous, u_total, |
BBS_name, u_online, BBS_max_client, u_anonymous, u_total, |
| 168 |
BBS_max_user, BBS_start_dt, u_login_count); |
BBS_max_user_count, BBS_start_dt, u_login_count); |
| 169 |
|
|
| 170 |
iflush(); |
iflush(); |
| 171 |
|
|
| 347 |
{ |
{ |
| 348 |
goto cleanup; |
goto cleanup; |
| 349 |
} |
} |
| 350 |
|
if (set_user_list_pool_shm_readonly() < 0) |
| 351 |
|
{ |
| 352 |
|
goto cleanup; |
| 353 |
|
} |
| 354 |
|
|
| 355 |
// Load menu in shared memory |
// Load menu in shared memory |
| 356 |
if (set_menu_shm_readonly(&bbs_menu) < 0) |
if (set_menu_shm_readonly(&bbs_menu) < 0) |
| 456 |
detach_menu_shm(&top10_menu); |
detach_menu_shm(&top10_menu); |
| 457 |
|
|
| 458 |
// Detach data pools shm |
// Detach data pools shm |
| 459 |
|
detach_user_list_pool_shm(); |
| 460 |
detach_section_list_shm(); |
detach_section_list_shm(); |
| 461 |
detach_article_block_shm(); |
detach_article_block_shm(); |
| 462 |
detach_trie_dict_shm(); |
detach_trie_dict_shm(); |