免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 7963 | 回复: 3
打印 上一主题 下一主题

System error 11: Resource temporarily unavailable问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-17 16:25 |只看该作者 |倒序浏览
我用C开发了一个业务网关,可以支持HTTP请求,在HTTP请求上来的时候,经常会报“System error 11: Resource temporarily unavailable”这个错误,请各位大侠帮忙看看,是什么问题啊,我用的是Solaris系统的

论坛徽章:
0
2 [报告]
发表于 2008-11-18 10:23 |只看该作者
你需要先搞清楚出问题时的调用栈是什么?需要知道调用了哪个库函数或系统调用报EAGAIN的错误。然后man一下这个库函数或系统调用,看报告EAGAIN时的具体说明。比如:调用open()报EAGAIN时的出错说明如下:\r\n\r\n     The open() function may fail if:\r\n\r\n     EAGAIN          The path argument names the slave side of  a\r\n                     pseudo-terminal device that is locked.\r\n\r\n不同的库函数和系统调用对于同一个报错代码,其出错原因会有少许不同,所以搞清调用栈找到具体调用为先。

论坛徽章:
0
3 [报告]
发表于 2008-11-20 13:32 |只看该作者
谢谢楼上的关注,我的应该是在read的时候提示的错误

论坛徽章:
0
4 [报告]
发表于 2008-11-21 10:23 |只看该作者
如果是read()报EAGAIN(11)错误,则以下是出错的原因。\r\n\r\nERRORS\r\n     The read(), readv(), and pread() functions will fail if:\r\n\r\n     EAGAIN          Mandatory  file/record  locking   was   set,\r\n                     O_NDELAY  or  O_NONBLOCK  was set, and there\r\n                     was a blocking record lock; total amount  of\r\n                     system  memory  available when reading using\r\n                     raw I/O is temporarily insufficient; no data\r\n                     is  waiting  to be read on a file associated\r\n                     with a tty device and O_NONBLOCK was set; or\r\n                     no message is waiting to be read on a stream\r\n                     and O_NDELAY or O_NONBLOCK was set.\r\n\r\n这里面提到了很多种可能,估计对于你的应用,你有可能属于最后一种情况,即你是以O_NDELAY或者O_NONBLOCK方式打开了一个流,你希望从上面读消息,但目前没有消息,由于是非阻塞方式,所以read()仍然返回,但返回值为-1,且errno被设为EAGAIN。如果是这种情况,则是正常的。不过你可以通过select()方式来测试某个socket是否有输入,然后再去读,这样会好一些。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP