- 主题:boards.c中w+b6导致未读无法清除问题的解决
我的archlinux昨天升级了一下,今天发现清除未读不正常工作了,清空全部未读之后,重新登录,发现之前清除的未读又回来了。
看errorlog,发现如下的提示
[2010-01-25 16:52:51 16937 3.error] rains can't home/R/rains/.boardrc.gz.tmp open to write:(null)
[2010-01-25 16:53:01 16951 3.error] rains can't home/R/rains/.boardrc.gz.tmp open to write:(null)
[2010-01-25 16:53:48 16980 3.error] rains can't home/R/rains/.boardrc.gz.tmp open to write:(null)
[2010-01-25 16:55:32 17061 3.error] rains can't home/R/rains/.boardrc.gz.tmp open to write:(null)
[2010-01-25 16:56:46 17119 3.error] rains can't home/R/rains/.boardrc.gz.tmp open to write:(null)
找到boards.c中关于.boardrc.gz.tmp的代码
688 if ((fd = gzopen(dirfile_tmp, "w+b6")) == NULL) {
689 const char *errstr;
690 int gzerrno;
691
感觉w+b6这种写法很诡异。我记得php里面+是指读写模式。C应该也差不多吧。别的地方看不出问题。就从+号这里入手了
把688行w+b6改为wb6,make clean install 重启bbs,一切ok了。:D
昨天貌似zlib从1.2.3.4变成了1.2.3.7,不知道是不是这个原因导致的。
我顺便把另外两个w+b也替换成wb了
--
修改:elf FROM 118.67.127.*
FROM 118.67.127.*
这个地方wb6是对的,另外两个一个在#if 0 #endif里
另外一个如果真执行到了那句的话用wb6是不对的。。
【 在 elf (精灵) 的大作中提到: 】
: 我的archlinux昨天升级了一下,今天发现清除未读不正常工作了,清空全部未读之后,重新登录,发现之前清除的未读又回来了。
: 看errorlog,发现如下的提示
: [2010-01-25 16:52:51 16937 3.error] rains can't home/R/rains/.boardrc.gz.tmp open to write:(null)
: ...................
--
FROM 202.106.180.*
额...多谢兔总
我再仔细看看
w+b是指二进制兼容的读写模式么?
【 在 fancyrabbit (fancy★岁月静好现世安稳) 的大作中提到: 】
: 这个地方wb6是对的,另外两个一个在#if 0 #endif里
: 另外一个如果真执行到了那句的话用wb6是不对的。。
--
修改:elf FROM 118.67.127.*
FROM 118.67.127.*
是,不过符合POSIX的系统上b应该没用。
【 在 elf (精灵) 的大作中提到: 】
: 额...多谢兔总
: 我再仔细看看
: w+b是指二进制兼容的读写模式么?
: ...................
--
FROM 123.116.114.*
现在gzopen似乎不能以 + 模式打开文件了
引自zlib.h
gzopen returns NULL if the file could not be opened, if there was
insufficient memory to allocate the gzFile state, or if an invalid mode
was
specified (an 'r', 'w', or 'a' was not provided, or '+' was provided).
【 在 elf (精灵) 的大作中提到: 】
: 我的archlinux昨天升级了一下,今天发现清除未读不正常工作了,清空全部未读之后,重新登录,发现之前清除的未读又回来了。
: 看errorlog,发现如下的提示
: [2010-01-25 16:52:51 16937 3.error] rains can't home/R/rains/.boardrc.gz.tmp open to write:(null)
: ...................
--
FROM 221.194.29.*
搞了,嗯...
【 在 sbbsirun (irun) 的大作中提到: 】
: 现在gzopen似乎不能以 + 模式打开文件了
: 引自zlib.h
: gzopen returns NULL if the file could not be opened, if there was
: ...................
--
FROM 123.116.116.*
啊,改了2个w+b6,未读正常了。
【 在 sbbsirun (irun) 的大作中提到: 】
: 现在gzopen似乎不能以 + 模式打开文件了
: 引自zlib.h
: gzopen returns NULL if the file could not be opened, if there was
: ...................
--
FROM 118.112.23.*