- 主题:fixdir.c的bug?
smth1.2的系统,今天有一个版的.DIR文件损坏了,用local_util下的fixdir修复。
先用test版(2000多篇文章)测试了一下,没问题。
再用到需要修复的版上,该版有两万多帖,可是运行fixdir十几秒后停住。
Debug发现,每次fixdir只能读完第20031篇文章,之后应该就停在readdir上。
是否是因为文章数太多超过了readdir的限制?
是否要用readdir64?
--
FROM 137.189.4.*
尝试一下最新版的fixdir?应该有改进吧
【 在 qiqi (蓬莱仙子) 的大作中提到: 】
: smth1.2的系统,今天有一个版的.DIR文件损坏了,用local_util下的fixdir修复。
: 先用test版(2000多篇文章)测试了一下,没问题。
: 再用到需要修复的版上,该版有两万多帖,可是运行fixdir十几秒后停住。
: ...................
--
FROM 61.135.146.*
看了一下,新版的fixdir加了个编译开关做条件判断,其它的都没有变化。
#ifdef SMTH
if( prefix == NULL && strlen(direntp->d_name)==1 && strchr( alphabet, direntp->d_name[0] ) ){
char buf[200];
sprintf(buf, "%s/%c", path, direntp->d_name[0] );
getallpost(buf, direntp->d_name[0]);
continue;
}
#endif
【 在 ak47mig (Saint-圣徒) 的大作中提到: 】
: 尝试一下最新版的fixdir?应该有改进吧
--
FROM 137.189.4.*
另:发现fixdir & gen_title之后,之前所有的m和g的标记都不见了
该如何重新生成?
【 在 qiqi (蓬莱仙子) 的大作中提到: 】
: 看了一下,新版的fixdir加了个编译开关做条件判断,其它的都没有变化。
: #ifdef SMTH
: if( prefix == NULL && strlen(direntp->d_name)==1 && strchr( alphabet, direntp->d_name[0] ) ){
: ...................
--
FROM 137.189.4.*
-_-!
【 在 qiqi@newsmth.net-SPAM.no (蓬莱仙子) 的大作中提到: 】
: 另:发现fixdir & gen_title之后,之前所有的m和g的标记都不见了
: 该如何重新生成?
: 【 在 qiqi (蓬莱仙子) 的大作中提到: 】
: : 看了一下,新版的fixdir加了个编译开关做条件判断,其它的都没有变化。
: : #ifdef SMTH
: : if( prefix == NULL && strlen(direntp->d_name)==1 && strchr( alphabet, direntp->d_name[0] ) ){
: ...................
--
FROM 222.37.0.0
比较郁闷,有没有人也发现类似问题?
【 在 SXYou.bbs@newytht.net (山西游) 的大作中提到: 】
: -_-!
--
FROM 137.189.4.*
嗯,貌似是这样的,应该是m标记没了。。。
【 在 qiqi (蓬莱仙子) 的大作中提到: 】
: 另:发现fixdir & gen_title之后,之前所有的m和g的标记都不见了
: 该如何重新生成?
--
FROM 221.217.48.*
实乃人间惨剧,竟无语凝噎。。。
两万多的帖子需要重新标记,版主要去撞墙了。。。
【 在 ak47mig (Saint-圣徒) 的大作中提到: 】
: 嗯,貌似是这样的,应该是m标记没了。。。
--
FROM 137.189.4.*
哦,还有一个版是近5万贴。。。
【 在 qiqi (蓬莱仙子) 的大作中提到: 】
: 实乃人间惨剧,竟无语凝噎。。。
: 两万多的帖子需要重新标记,版主要去撞墙了。。。
--
FROM 137.189.4.*
不知道是否的确有20031篇帖子的限制,时间紧迫,就先没改代码,暂时笨办法解决的:
把原版的目录分成多个,每个目录内的帖子数少于两万,
然后分别生成.DIR,再把.DIR和目录合并。
【 在 qiqi (蓬莱仙子) 的大作中提到: 】
: smth1.2的系统,今天有一个版的.DIR文件损坏了,用local_util下的fixdir修复。
: 先用test版(2000多篇文章)测试了一下,没问题。
: 再用到需要修复的版上,该版有两万多帖,可是运行fixdir十几秒后停住。
: ...................
--
FROM 137.189.4.*