找回密码
 注册
查看: 605|回复: 0

谈谈segmentation fault

[复制链接]
发表于 2003-8-21 16:42:06 | 显示全部楼层 |阅读模式
segmentation fault 意即你访问了不属于你的内存。可能是由于错误的指针操作、数组越界或函数参数使用不当引起的。有时候程序所需的内存太大(比如说数组太大),系统无法分配足够的内存,而程序中没有对这种情况进行判断,仍旧按照正常情况访问非法地址或非法指针。
有部分代码:
          [code:1] nsel=select(maxfd+1,&rds,&wds,NULL,NULL);
                 ...
           for(i=0;i<CONN_FD_MAX&&nsel>0;i++){
                        if(FD_ISSET(cq.ci[i].sd,&rds)){
                                printf("reading\n");
                                read_requ(&cq,i);
                                nsel--;
                        }
                        if(FD_ISSET(cq.ci[i].fd,&wds)){
                                printf("writing\n");
                                write_resp(&cq,i);
                                nsel--;
                                close(i);
                        }
                }[/code:1]如果只是FD_SET(cq.ci[1].sd,&rds),当执行上面的语句
if(FD_ISSET(cq.ci.fd,&wds))(这个if语句为假)时发生segmentation fault错误,怎么避免这个错误,望高手指点
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2025-8-11 12:11 , Processed in 0.025313 second(s), 15 queries .

© 2001-2025 Discuz! Team. Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表