QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 667|回复: 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, 2024-11-15 06:25 , Processed in 0.042615 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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