我有一个小型服务器程序,它接受TCP或本地UNIX套接字上的连接,读取一个简单的命令,并根据命令发送一个回复.问题是客户端有时可能对答案没兴趣并且提前退出,因此写入该套接字将导致SIGPIPE并使我的服务器崩溃.什么是防止崩溃的最佳做法?有没有办法检查线的另一边是否还在读?(select()似乎在这里不起作用,因为它总是说套接字是可写的).或者我应该用处理程序捕获SIGPIPE并忽略它?
有人可以解释Perl中字符串"0但是真"的含义吗?据我所知,它在整数比较中等于零,但在用作布尔值时求值为true.它是否正确?这是语言的正常行为还是在解释器中作为特殊情况处理的特殊字符串?
当我使用accept()创建一个套接字并使用fdopen()从中创建一个FILE时,我需要做些什么来清理所有内容?我需要在套接字上的FILE,shutdown()和close()上执行fclose(),还是只需要shutdown()和/或close()或fclose()?如果我不做fclose(),我是否必须手动释放()FILE指针?
我正在使用BlackBerry Java API(OS 4.7及更高版本)在Java中编写BlackBerry应用程序.我想在我的应用程序的标题行中添加一个图标.API文档说"MainScreen"类的方法"setTitle"采用"Field",所以我想我可以创建一个包含图标(BitmapField)和一些文本(LabelField)的"HorizontalFieldManager".但是,当我这样做时,我得到一个奇怪的例外.是否可以使用setTitle()的任何字段(除LabelField之外)?我已经看到其他应用程序在其标题行中有图标,但也许他们没有使用setTitle()但创建自己的(假)标题行.