有没有大牛能告诉我
这个shm到底是做什么用的?是用于什么之间的通信?
有没有办法避免shm_utmp错误?(不用每次清shm)
清除shm这样做的道理又是什么?
据我的理解(粗看了一下代码加上猜测,不知道对不对)
共享内存结构UTMPFILE是用来保存当前登录用户信息用的
当一个用户试图登录时,先查找共享内存中的记录
以防止同一用户的过多登录
在引起shm_utmp错误的函数shm_init中
如果读取共享内存返回0表示,没有用户登录,或发生其它错误
实际上有其它用户登录的情况下,也会出现shm错误
那么其它引起错误的原因是什么?为什么从telnet登录不会出现这个错误?
如果shm的作用如上的话,telnet不也要读共享内存么
如果不在user_info里加上utmpkey,并把含有utmpkey的语句都删除
再编译就不会出现shm错误了,
我原来猜想可能因此用户就可以从WWW无限次数的登录
实际试验不是这样,那么在功能上有什么影响吗?
为什么这样就不出错了?即使没有这个utmpkey,仍然要执行shm_init的?
并且是在bbslogin访问utmpkey之前。。。
这是猜测的UTMPFILE的用途,另外两个引起shm错误的结构BCACHE,UCACHE
是做什么用的?
【 在 haggard (乱曰) 的大作中提到: 】
: 别骂我。。。
: 查了前面所有关于shm_umtp的贴子
: 还是不太明白,照做了也还是不好使
: ...................
--
修改:haggard FROM 202.118.1.*
FROM 202.118.1.*