- 主题:问题解决,原因未知。
下面的函数中,把ptrlen改成int类型,所有问题都没了,原因未知。
详细描述见前面的帖子。开发组那位大神有空看一下吧。这么奇怪的
bug还是头一次见到。
PHP_FUNCTION(bbs2_readfile)
{
char *filename;
int filename_len;
char *output_buffer;
int output_buffer_len, output_buffer_size, j;
char c;
char *ptr, *cur_ptr;
//off_t ptrlen, mmap_ptrlen;
off_t mmap_ptrlen;
int ptrlen;
int in_chinese = false;
int chunk_size = 51200;
--
修改:spadger FROM 211.99.222.*
FROM 211.99.222.*
怀疑过这个问题。
自己的ubuntu8.04系统off_t也是32位的,但是编译php模块的时候发现定义了
_FILE_OFFSET_BITS=64
【 在 zls (回首已是 666 !) 的大作中提到: 】
: 想起来了,跟版面 35923 类似...
--
FROM 211.99.222.*
No,CPU P3M-1.2G,系统ubuntu_8.04_server_i386。
这样说来KBS所有的off_t都应该是32位?
【 在 fancyrabbit (fancy★Internship ...★喵) 的大作中提到: 】
: 你是 x64 环境?
--
FROM 211.99.222.*
这样的bug调试起来真的让人很崩溃,搞了近一个星期,那些ugly的代码都读懂了程序还是
有问题,后来发现是系统装的软件的原因。。
目前有没有除了换系统以外比较好的解决方案?
【 在 spadger (这里的水很深) 的大作中提到: 】
: 下面的函数中,把ptrlen改成int类型,所有问题都没了,原因未知。
: 详细描述见前面的帖子。开发组那位大神有空看一下吧。这么奇怪的
: bug还是头一次见到。
: ...................
--
FROM 211.99.222.*
grep整个目录,手工把 -D_FILE_OFFSET_BITS去掉了。
在文档里面说明一下这个问题吧,随着新版本的发行,这个问题会有更多人碰到的。
【 在 spadger (这里的水很深) 的大作中提到: 】
: 下面的函数中,把ptrlen改成int类型,所有问题都没了,原因未知。
: 详细描述见前面的帖子。开发组那位大神有空看一下吧。这么奇怪的
: bug还是头一次见到。
: ...................
--
FROM 211.99.222.*
我写了测试程序测试确实是32位的。。
【 在 fancyrabbit (fancy★Internship ...★喵) 的大作中提到: 】
: 如果你是 x86 的系统的话 off_t 确实一般都是 32 位...
--
FROM 211.99.222.*