特别说明哦:我的日志都是自己写的,完全是自己写的,完全没有转载的,可别以为我是转载的哦
这里的文章除特别说明的以外,全部使用《知识共享 署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议》进行许可,不可以盗用哦
但是,未经书面(包括包含电子签名的电子邮件)许可,禁止天朝墙外网站以任何形式转载本站任何内容
消息队列使用的 msg_buf_t 结构体里面的 mtype 是长整型的!
[
2009年9月3日 21:29 | by gs ]
2009年9月3日 21:29 | by gs ]
今天下午弄了好久总算把 pure-ftpd with libantixunlei 部署到64位系统上去了。期间调教了好久。
首先想起来长整型(long)在64位系统上是8字节,而在32位系统上是4字节。于是就出现了一些数据结构对齐的问题,这个问题弄下来以后,偶索性把所有的long都替换成了int,然后编译安装,一切顺利。
但是运行的时候,却发现主进程的消息处理线程阻塞死了,根据调试信息,子进程明明已经把消息发送出去了,但是消息处理线程硬是收不到,一直阻塞在msgrcv函数那里。
于是又折腾了好久,后来才想到,会不会是这个msg_buf_t里面用来标识消息类型的mtype是长整型的,如果这样的话,刚才我把所有的long替换成int,肯定影响到这里了。之前偶在网上看消息函数的时候,有些文章定义这个结构体的时候用的是整型,而有些文章用的是长整型,哎呀真是不严谨啊。
于是把这个结构体里面的 int mtype 改成 long mtype,编译安装运行,正常了……
所以说long和int一定要慎用啊……
cygwin 下的西语言开发笔记
[
2009年8月31日 21:51 | by gs ]
2009年8月31日 21:51 | by gs ]
最近发现,虽然以前做了很多东西,也解决了很多问题,看似也学会了解决很多问题。而实际上,因为有些东西是很少用到的,所以很容易就会忘记。等到某天想用的时候,虽然记得以前知道怎么做,也成功做过,但是到现在就想不起细节到底是怎样的了。所以看来啊,还是应该把这些东西记起来比较好。
于是这几天在cygwin下弄libantixunlei,先记下这些东西吧。如果以后再有新发现的话,继续追加。
顺便说个趣事,我用fork()函数产生子进程,产生到300多个的时候,Windows挂掉了,表现为图形界面凝固,怎么动都没反应,只能冷启。








