一个奇怪的问题,请教高手--AIX下多线程的一个程序,其中一个线程在system()(或者fork())一个进程后,调用socket函数 connect() 失败!
一个奇怪的问题,请教高手--AIX下多线程的一个程序,其中一个线程在system()(或者fork())一个进程后,调用socket函数 connect() 失败!
查看 errno 得到的结果是 2 [No such file or directory] !!!!
同样的程序在 windows/linux 下面就没有问题!!!!!
AIX环境
4.3.3
GCC 3.0 ,3.2 都试验过了。。。。。。。。。。。。。。。。。。。
这也是我多年跨平台开发所遇到的一个难题活着说奇怪的问题,比较怀疑是AIX的BUG ~~~~~~~~~~~~~~~
请高手们不吝赐教~~~~~~~~~~~~~~~~~
问题点数:100、回复次数:14Top
1 楼xbjob(免费消息传输中间件www.fmq.com.cn)回复于 2005-07-02 10:58:30 得分 0
还有一个现象: connect自己 是可以的,一点问题都没有!!!Top
2 楼zhousqy(标准C匪徒)(甩拉,甩拉)回复于 2005-07-02 12:55:22 得分 20
有代码没?Top
3 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2005-07-02 13:21:31 得分 10
具体代码,描述更清楚点Top
4 楼xbjob(免费消息传输中间件www.fmq.com.cn)回复于 2005-07-02 21:14:14 得分 0
代码倒是有,不过太多了~~~ 而且估计肯定不是代码的问题!
这个问题我估计很难得到答案了~~~
Top
5 楼xbjob(免费消息传输中间件www.fmq.com.cn)回复于 2005-07-02 21:20:58 得分 0
描述再清楚些:
一个多线程的程序,用来发送和接收文件!
其中一个线程,定时调用一个外部的程序,比如system("ls -l");
当时间到了,那个线程执行system()函数成功之后,其余负责发送文件的线程在连接远程主机的时候(调用Socket函数connect(...))返回失败!!! 查看 errno 得到的结果是 2 [No such file or directory] !!!!但是连接自己(127.0.0.1)的时候就可以连接成功!!!
同样的代码在Linux下一点问题都没有!
不知描述的清楚否~~~
估计可能的原因:AIX 的毛病 或者使用 GCC的原因,哪天我用Xlc试验试验~~~ :)
Top
6 楼Wolf0403(废人:独活十年~心如刀割)回复于 2005-07-03 09:14:58 得分 20
没搞错的话,每个进程都是 fork 出来的,所以这样的问题应该不是系统的问题……继续检查代码吧Top
7 楼newbiestar()回复于 2005-07-03 10:27:56 得分 50
除了init以外……Top
8 楼xbjob(免费消息传输中间件www.fmq.com.cn)回复于 2005-07-04 11:05:12 得分 0
自己顶1下Top
9 楼Wolf0403(废人:独活十年~心如刀割)回复于 2005-07-04 11:21:10 得分 0
大米抢分速度真是非同一般……
init 是由 boot loader -> kernel init -> 这个线程直接 exec 得到的Top
10 楼xbjob(免费消息传输中间件www.fmq.com.cn)回复于 2005-07-04 12:26:03 得分 0
答非所问呀,兄弟,我不太关心initTop
11 楼newbiestar()回复于 2005-07-04 14:06:32 得分 0
……
算了,这个问题还是留给小龙女吧……Top
12 楼xbjob(免费消息传输中间件www.fmq.com.cn)回复于 2005-07-05 11:58:46 得分 0
:( 看来小龙女她师父来了也不行了
我认了,这个功能AIX版本不提供了~~~
感谢兄弟们~~~~~~~~~~~~Top
13 楼gogowhy(123)回复于 2005-09-08 09:24:22 得分 0
mTop
14 楼xbjob(免费消息传输中间件www.fmq.com.cn)回复于 2005-12-19 12:24:38 得分 0
123Top




