void informBM(char *userid, boardheader_t *bptr, int nEXP) { int uid, i; char filename[256], buf[64]; fileheader_t mymail; FILE *fp; if( !(uid = searchuser(userid, userid)) ) return; sprintf(filename, BBSHOME "/home/%c/%s", userid[0], userid); stampfile(filename, &mymail); if( (fp = fopen(filename, "w")) == NULL ) return; printf("brdname: %s, BM: %s\n", bptr->brdname, userid); fprintf(fp, "作者: 系統通知.\n" "標題: 警告: 貴板板友即將過期/已經過期\n" "時間: %s\n" " %s 的板主您好: \n" " 下列貴板板友即將過期或已經過期:\n" "------------------------------------------------------------\n", CTIMEx(buf, now), bptr->brdname); for( i = 0 ; i < nEXP ; ++i ) if( explist[i].expire == -1 ) fprintf(fp, "%-15s 已經過期\n", explist[i].userid); else fprintf(fp, "%-15s 即將在 %s 過期\n", explist[i].userid, CTIMEx(buf, explist[i].expire)); fprintf(fp, "------------------------------------------------------------\n" "說明:\n" " 為了節省系統資源, 系統將自動清除掉超過四個月未上站\n" "的使用者. 此時若有某位您不認識的使用者恰好註冊了該帳號,\n" "將會視為貴板板友而放行進入.\n" " 建議您暫時將這些使用者自貴板的板友名單中移除.\n" "\n" " 這封信件是由程式自動發出, 請不要直接回覆這封信. 若\n" "您有相關問題請麻煩至看板 SYSOP, 或是直接與看板總管聯繫. :)\n" "\n" BBSNAME "站長群敬上" ); fclose(fp); strcpy(mymail.title, "警告: 貴板板友即將過期/已經過期"); strcpy(mymail.owner, "系統通知."); sprintf(filename, BBSHOME "/home/%c/%s/.DIR", userid[0], userid); mailalertuid(uid); append_record(filename, &mymail, sizeof(mymail)); }
int utmpstatus(int argc, char **argv) { time_t now; char upbuf[64], nowbuf[64]; (void)argc; (void)argv; now = time(NULL); CTIMEx(upbuf, SHM->UTMPuptime); CTIMEx(nowbuf, now); printf("now: %s\n", nowbuf); printf("currsorted: %d\n", SHM->currsorted); printf("uptime: %s\n", upbuf); printf("number: %d\n", SHM->UTMPnumber); printf("busystate: %d\n", SHM->UTMPbusystate); return 0; }