当前位置: 技术问答>linux和unix
CGI编程中的难题!!
来源: 互联网 发布时间:2015-11-02
本文导语: 我在uClinux下面跑boa服务器。 CGI程序中有一些慢速调用,但boa服务器采用的是非阻塞I/O的方式,导致经常出现“无法立即返回非阻挡套接字”的错误。严重的是导致我的Web页面只显示一半,另外一半不发过来了。 请...
我在uClinux下面跑boa服务器。
CGI程序中有一些慢速调用,但boa服务器采用的是非阻塞I/O的方式,导致经常出现“无法立即返回非阻挡套接字”的错误。严重的是导致我的Web页面只显示一半,另外一半不发过来了。
请问有没有办法在“出错”的情况下仍然返回正确的页面?因为虽然出现“无法立即返回非阻挡套接字”的错误,但是程序还是正确的执行了。
CGI程序中有一些慢速调用,但boa服务器采用的是非阻塞I/O的方式,导致经常出现“无法立即返回非阻挡套接字”的错误。严重的是导致我的Web页面只显示一半,另外一半不发过来了。
请问有没有办法在“出错”的情况下仍然返回正确的页面?因为虽然出现“无法立即返回非阻挡套接字”的错误,但是程序还是正确的执行了。
|
因为你的CGI在打印“无法立即返回非阻挡套接字”之后调用exit(或类似代码,比如perl的die)退出了。你把exit注释掉即可(当然你需要对已出的错误进行处理)。
|
我在调试cgi的时候一般都400的错误,大部分都是指针操作错误导致,一般来讲,调试的一直怀疑出错的一句的调用return 0,看那一步出的错误
|
用select一把, 可写的时候再写, 可读的时候再读,就不会出错了.