- 主题:有没有统计已注册用户数的代码?
本来放在进站时自己遍历了一次,但是觉得效率不高,于是放在ucache里,但怎么也
不能正常使用,再尝试修改了UCACHE的结构,结果BBS就起不来了……
有没有好一点的方法啊...
--
FROM 211.151.95.*
嗯,我就是觉得每次遍历很傻的。但是放哪?难道放在文件?共享内存好像我写不进去
【 在 etnlegend (etn|若即若离·神话再续) 的大作中提到: 】
: 注册用户是有 R 权限的用户?
: 那没必要总去遍历啊... 算一次然后存在什么地方, 以后站务有 A-R 操作的时候
: 或者集中自动通过注册的时候改写一次就好... 别的时候都从那个地方读...
: ...................
--
修改:cometcaptor FROM 211.151.95.*
FROM 211.151.95.*
你恐怕只能遍历,或者至少要定期遍历。
因为还要考虑到有人自杀,有人被系统杀档,而且还有人是直接改权限通过注册的...
【 在 cometcaptor (参宿四[☆]一闪一闪亮晶晶) 的大作中提到: 】
: 嗯,我就是觉得每次遍历很傻的。但是放哪?难道放在文件?共享内存好像我写不进去
--
FROM 211.151.94.*
嗯,我是想用定期遍历的方法,在load_ucache、flush_ucache的时候遍历一次,在
update_user的时候把它+1,问题是我在ucache.c里加一个int idnumber然后在load_
ucache的时候遍历过了却不能把idnumber的值返回……如果想在共享内存里加这么个
int要怎么做才比较好?
【 在 flyriver (江~~忙碌生活) 的大作中提到: 】
: 你恐怕只能遍历,或者至少要定期遍历。
: 因为还要考虑到有人自杀,有人被系统杀档,而且还有人是直接改权限通过注册的...
--
FROM 211.151.95.*
为什么我在ucache里添个int然后去读它每次都会返回0啊...
【 在 etnlegend (etn|若即若离·神话再续) 的大作中提到: 】
: 啊... 原来有这么多洞, 想简单了- -
--
FROM 211.151.95.*
你改完了有没有清共享内存重启动整个程序阿
【 在 cometcaptor (参宿四[☆]一闪一闪亮晶晶) 的大作中提到: 】
: 为什么我在ucache里添个int然后去读它每次都会返回0啊...
--
FROM 61.182.213.*
重启了的,连虚拟机都重启了……
【 在 atppp (Big Mouse) 的大作中提到: 】
: 你改完了有没有清共享内存重启动整个程序阿
--
FROM 211.151.95.*
那么就把你的代码改动了什么,做了什么操作都详细的写出来。。。
【 在 cometcaptor (参宿四[☆]一闪一闪亮晶晶) 的大作中提到: 】
: 重启了的,连虚拟机都重启了……
--
FROM 61.182.213.*
加了一个int idnumber;
void countidnumber(void)
{
int i;
idnumber = 0;
for (i=0;i<MAXUSERS;i++)
if (uidshm->passwd[i].userid[0]!='\0')
idnumber++;
}
int getidnumber(void)
{
return idnumber;
}
然后在load_ucache和flush_ucache里countidnumber,登录时getidnumber,但是返回0
【 在 atppp (Big Mouse) 的大作中提到: 】
: 那么就把你的代码改动了什么,做了什么操作都详细的写出来。。。
--
FROM 211.151.95.*
你的idnumber定义在什么地方的
详细阿,说详细阿。。。
【 在 cometcaptor (参宿四[☆]一闪一闪亮晶晶) 的大作中提到: 】
: 加了一个int idnumber;
: void countidnumber(void)
: {
: ...................
--
FROM 61.182.213.*