{"id":201,"date":"2012-12-12T10:41:30","date_gmt":"2012-12-12T10:41:30","guid":{"rendered":"http:\/\/www.selinuxplus.com\/?p=201"},"modified":"2013-06-07T07:38:19","modified_gmt":"2013-06-07T07:38:19","slug":"sigpipe%e4%bf%a1%e5%8f%b7","status":"publish","type":"post","link":"http:\/\/www.selinuxplus.com\/?p=201","title":{"rendered":"SIGPIPE\u4fe1\u53f7"},"content":{"rendered":"<p>\u5bf9\u4e00\u4e2a\u5df2\u7ecf\u6536\u5230FIN\u5305\u7684socket\u8c03\u7528read\u65b9\u6cd5, \u5982\u679c\u63a5\u6536\u7f13\u51b2\u5df2\u7a7a, \u5219\u8fd4\u56de0,<br \/>\n\u8fd9\u5c31\u662f\u5e38\u8bf4\u7684\u8868\u793a\u8fde\u63a5\u5173\u95ed. \u4f46\u7b2c\u4e00\u6b21\u5bf9\u5176\u8c03\u7528write\u65b9\u6cd5\u65f6, \u5982\u679c\u53d1\u9001\u7f13\u51b2\u6ca1\u95ee\u9898,<br \/>\n\u4f1a\u8fd4\u56de\u6b63\u786e\u5199\u5165(\u53d1\u9001). \u4f46\u53d1\u9001\u7684\u62a5\u6587\u4f1a\u5bfc\u81f4\u5bf9\u7aef\u53d1\u9001RST\u62a5\u6587,<br \/>\n\u56e0\u4e3a\u5bf9\u7aef\u7684socket\u5df2\u7ecf\u8c03\u7528\u4e86close, \u5b8c\u5168\u5173\u95ed, \u65e2\u4e0d\u53d1\u9001, \u4e5f\u4e0d\u63a5\u6536\u6570\u636e. \u6240\u4ee5,<br \/>\n\u7b2c\u4e8c\u6b21\u8c03\u7528write\u65b9\u6cd5(\u5047\u8bbe\u5728\u6536\u5230RST\u4e4b\u540e), \u4f1a\u751f\u6210SIGPIPE\u4fe1\u53f7, \u5bfc\u81f4\u8fdb\u7a0b\u9000\u51fa.<\/p>\n<p>\u4e3a\u4e86\u907f\u514d\u8fdb\u7a0b\u9000\u51fa, \u53ef\u4ee5\u6355\u83b7SIGPIPE\u4fe1\u53f7, \u6216\u8005\u5ffd\u7565\u5b83,<br \/>\n\u7ed9\u5b83\u8bbe\u7f6eSIG_IGN\u4fe1\u53f7\u5904\u7406\u51fd\u6570:<\/p>\n<pre class=\"lang:default decode:true \" >signal(SIGPIPE, SIG_IGN);<\/pre>\n<p>\u8fd9\u6837, \u7b2c\u4e8c\u6b21\u8c03\u7528write\u65b9\u6cd5\u65f6, \u4f1a\u8fd4\u56de-1, \u540c\u65f6errno\u7f6e\u4e3aSIGPIPE.<br \/>\n\u7a0b\u5e8f\u4fbf\u80fd\u77e5\u9053\u5bf9\u7aef\u5df2\u7ecf\u5173\u95ed.<\/p>\n<p>PS: Linux\u4e0b\u7684SIGALRM\u4f3c\u4e4e\u4f1a\u6bcf1\u79d2\u949f\u5f80\u540e\u504f\u79fb1\u6beb\u79d2,<br \/>\n\u4f46Windows\u4e0b\u7ecf\u8fc7\u6d4b\u8bd5\u5b8c\u5168\u51c6\u65f6, \u4e0d\u5dee1\u6beb\u79d2.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u5bf9\u4e00\u4e2a\u5df2\u7ecf\u6536\u5230FIN\u5305\u7684socket\u8c03\u7528read\u65b9&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[34,35],"_links":{"self":[{"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/posts\/201"}],"collection":[{"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=201"}],"version-history":[{"count":2,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/posts\/201\/revisions"}],"predecessor-version":[{"id":237,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=\/wp\/v2\/posts\/201\/revisions\/237"}],"wp:attachment":[{"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=201"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.selinuxplus.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}