当前位置: 技术问答>linux和unix
程序死循环了
来源: 互联网 发布时间:2016-10-01
本文导语: 程序有这样一句话: while( ( sts = select(m_listenSock+1,&fdset,NULL,NULL,&timeout)) && (errno == EINTR) ); 我发现有时候程序执行到这一句的时候会死循环,即sts=1并且errno=EINTR,我想知道的是: 1.在什么情况下会出现这种死循环...
程序有这样一句话:
while( ( sts = select(m_listenSock+1,&fdset,NULL,NULL,&timeout)) && (errno == EINTR) );
我发现有时候程序执行到这一句的时候会死循环,即sts=1并且errno=EINTR,我想知道的是:
1.在什么情况下会出现这种死循环的情况,errno=EINTR是什么意思?
2.如果我把errno=EINTR忽略掉,直接sts =1时继续执行下边的程序,会对程序有什么影响?
while( ( sts = select(m_listenSock+1,&fdset,NULL,NULL,&timeout)) && (errno == EINTR) );
我发现有时候程序执行到这一句的时候会死循环,即sts=1并且errno=EINTR,我想知道的是:
1.在什么情况下会出现这种死循环的情况,errno=EINTR是什么意思?
2.如果我把errno=EINTR忽略掉,直接sts =1时继续执行下边的程序,会对程序有什么影响?
|
上面的写错了
while( ( sts = select(m_listenSock+1,&fdset,NULL,NULL,&timeout))