我在学习C,我对时间有疑问。在一次练习中,我:
while(1){
while((sockacc = accept(ds_sock,&client,&length)) == -1);
--other instructions--
}有人能告诉我第二次的作用是什么吗?我知道接听电话是用来做什么的。我不明白,如果身体里没有任何东西,为什么要用一段时间。
发布于 2014-03-31 21:40:31
accept()能够返回失败(-1)的原因之一是EINTR (中断的系统调用)。此代码中的内环如果返回错误EINTR或任何其他错误,就会重试accept(),因为它不测试内环体中errno的值。如果错误是EBADF (错误的文件描述符,指示套接字文件描述符不是套接字文件描述符,或者以某种方式被销毁),这可能是性能问题。通常,您会在循环的正文中看到一个测试,以确保错误是代码所期望的有限集合之一。
https://stackoverflow.com/questions/22772479
复制相似问题