第一种方法,即注释掉fb2k-v2.h中的CONV_PASS,就可以使用原来的.PASSWDS。原来是因为清共享内存的问题。
关于共享内存,也陷入困境中。每次运行ipcs -m | awk '$0~/bbs/ {system(sprintf("ipcrm shm %s",$2));}'
都会出现
unknown argument: shm
usage: ipcrm [-q msqid] [-m shmid] [-s semid]
[-Q msgkey] [-M shmkey] [-S semkey] ...
xueroom# unknown argument: shm
unknown: Command not found.
usage: ipcrm [-q msqid] [-m shmid] [-s semid]
[-Q msgkey] [-M shmkey] [-S semkey] ...
xueroom# usage: ipcrm [-q msqid] [-m shmid] [-s semid]
usage:: Too many arguments.
似乎是ipcrm不接受shm作为其参数。但很多朋友似乎都可以顺利去掉共享内存。
ipcrm手工删除共享内存也是可以的,就是麻烦了一些。
【 在 kongxx (江南人) 的大作中提到: 】
: 因为没有定制文件devel.c和devel.h,所以只好使用fb2k-v2。但编译之后认证出了问题。在newsmth上询问,只说passwds相关的数据在struct.h中定义,与devel和fb2k-v2无关。
: 查看这二个定制文件,发现后者有CNV_PASS的常量,这会导致passwd结构的改变。使得passwds的每一个记录多出16个字节。
: 后来注释了fb2k-v2的相关代码,但编译后的程序还是不认原来的passwds。也许是操作不当,即没有清空共享内存造成的。因为修改passwds文件之后也没有一下就成功,而是重启系统之后才行的。
: ...................
--
FROM 58.34.8.*