{"id":5043,"date":"2021-02-03T01:05:58","date_gmt":"2021-02-02T17:05:58","guid":{"rendered":"https:\/\/damogame.cn\/wordpress\/?p=5043"},"modified":"2021-02-03T01:05:58","modified_gmt":"2021-02-02T17:05:58","slug":"epoll%e7%9a%84%e6%b0%b4%e5%b9%b3%e8%a7%a6%e5%8f%91%e5%92%8c%e8%be%b9%e7%bc%98%e8%a7%a6%e5%8f%91","status":"publish","type":"post","link":"https:\/\/i007.cc\/wordpress\/archives\/5043","title":{"rendered":"epoll\u7684\u6c34\u5e73\u89e6\u53d1\u548c\u8fb9\u7f18\u89e6\u53d1"},"content":{"rendered":"<div class=\"col-2-article-header\">\n<p class=\"article-title J-articleTitle\"><a href=\"https:\/\/cloud.tencent.com\/developer\/article\/1736793\">\u539f\u6587\u5730\u5740<\/a><\/p>\n<div class=\"article-infos-wrap\">\n<div class=\"article-infos-extra\"><\/div>\n<\/div>\n<\/div>\n<div class=\"com-markdown-collpase\">\n<div class=\"com-markdown-collpase-main\">\n<div class=\"rno-markdown J-articleContent\">\n<p>\u672c\u7bc7\u662f\u591a\u8def\u590d\u7528\u7684\u7b2c\u4e94\u7bc7\uff0c\u4e3b\u8981\u6765\u8bb2\u89e3epoll\u7684\u6c34\u5e73\u89e6\u53d1\u548c\u8fb9\u7f18\u89e6\u53d1\u662f\u600e\u4e48\u56de\u4e8b\u3002<\/p>\n<p><strong>\u4e00\u3001\u6982\u5ff5\u4ecb\u7ecd<\/strong><\/p>\n<p>EPOLL\u4e8b\u4ef6\u6709\u4e24\u79cd\u6a21\u578b\uff0c\u6c34\u5e73\u51fa\u53d1\u548c\u8fb9\u7f18\u89e6\u53d1\uff0c\u5982\u4e0b\u6240\u793a\uff1a<\/p>\n<p>1. Level Triggered (LT) \u6c34\u5e73\u89e6\u53d1<\/p>\n<pre class=\"prism-token token  language-javascript\"><span class=\"token number\">1<\/span><span class=\"token punctuation\">.<\/span> socket\u63a5\u6536\u7f13\u51b2\u533a\u4e0d\u4e3a\u7a7a \u6709\u6570\u636e\u53ef\u8bfb \u8bfb\u4e8b\u4ef6\u4e00\u76f4\u89e6\u53d1\r\n<span class=\"token number\">2<\/span><span class=\"token punctuation\">.<\/span> socket\u53d1\u9001\u7f13\u51b2\u533a\u4e0d\u6ee1 \u53ef\u4ee5\u7ee7\u7eed\u5199\u5165\u6570\u636e \u5199\u4e8b\u4ef6\u4e00\u76f4\u89e6\u53d1\r\n\u5907\u6ce8\uff1a\u7b26\u5408\u601d\u7ef4\u4e60\u60ef\uff0cepoll_wait\u8fd4\u56de\u7684\u4e8b\u4ef6\u5c31\u662fsocket\u7684\u72b6\u6001<\/pre>\n<p>\u4f8b\u5b50\u4ecb\u7ecd\uff1a<\/p>\n<pre class=\"prism-token token  language-javascript\"><span class=\"token number\">1<\/span><span class=\"token punctuation\">.<\/span> accept\u4e00\u4e2a\u8fde\u63a5\uff0c\u6dfb\u52a0\u5230epoll\u4e2d\u76d1\u542cEPOLLIN\u4e8b\u4ef6\r\n<span class=\"token number\">2<\/span><span class=\"token punctuation\">.<\/span> \u5f53EPOLLIN\u4e8b\u4ef6\u5230\u8fbe\u65f6\uff0cread fd\u4e2d\u7684\u6570\u636e\u5e76\u5904\u7406\r\n<span class=\"token number\">3<\/span><span class=\"token punctuation\">.<\/span> \u5f53\u9700\u8981\u5199\u51fa\u6570\u636e\u65f6\uff0c\u628a\u6570\u636ewrite\u5230fd\u4e2d\uff1b\r\n\u5982\u679c\u6570\u636e\u8f83\u5927\uff0c\u65e0\u6cd5\u4e00\u6b21\u6027\u5199\u51fa\uff0c\u90a3\u4e48\u5728epoll\u4e2d\u76d1\u542cEPOLLOUT\u4e8b\u4ef6\r\n<span class=\"token number\">4<\/span><span class=\"token punctuation\">.<\/span> \u5f53EPOLLOUT\u4e8b\u4ef6\u5230\u8fbe\u65f6\uff0c\u7ee7\u7eed\u628a\u6570\u636ewrite\u5230fd\u4e2d\uff1b\r\n\u5982\u679c\u6570\u636e\u5199\u51fa\u5b8c\u6bd5\uff0c\u90a3\u4e48\u5728epoll\u4e2d\u5173\u95edEPOLLOUT\u4e8b\u4ef6<\/pre>\n<p>2. Edge Triggered (ET) \u8fb9\u6cbf\u89e6\u53d1<\/p>\n<pre class=\"prism-token token  language-javascript\"><span class=\"token number\">1<\/span><span class=\"token punctuation\">.<\/span> socket\u7684\u63a5\u6536\u7f13\u51b2\u533a\u72b6\u6001\u53d8\u5316\u65f6\u89e6\u53d1\u8bfb\u4e8b\u4ef6\uff0c\u5373\u7a7a\u7684\u63a5\u6536\u7f13\u51b2\u533a\u521a\u63a5\u6536\u5230\u6570\u636e\u65f6\u89e6\u53d1\u8bfb\u4e8b\u4ef6\r\n<span class=\"token number\">2<\/span><span class=\"token punctuation\">.<\/span> socket\u7684\u53d1\u9001\u7f13\u51b2\u533a\u72b6\u6001\u53d8\u5316\u65f6\u89e6\u53d1\u5199\u4e8b\u4ef6\uff0c\u5373\u6ee1\u7684\u7f13\u51b2\u533a\u521a\u7a7a\u51fa\u7a7a\u95f4\u65f6\u89e6\u53d1\u8bfb\u4e8b\u4ef6\r\n\u5907\u6ce8\uff1a\u4ec5\u5728\u72b6\u6001\u53d8\u5316\u65f6\u89e6\u53d1\u4e8b\u4ef6<\/pre>\n<p>\u4f8b\u5b50\u4ecb\u7ecd\uff1a<\/p>\n<pre class=\"prism-token token  language-javascript\"><span class=\"token number\">1<\/span><span class=\"token punctuation\">.<\/span> accept\u4e00\u4e2a\u4e00\u4e2a\u8fde\u63a5\uff0c\u6dfb\u52a0\u5230epoll\u4e2d\u76d1\u542cEPOLLIN<span class=\"token operator\">|<\/span>EPOLLOUT\u4e8b\u4ef6\r\n<span class=\"token number\">2<\/span><span class=\"token punctuation\">.<\/span> \u5f53EPOLLIN\u4e8b\u4ef6\u5230\u8fbe\u65f6\uff0cread fd\u4e2d\u7684\u6570\u636e\u5e76\u5904\u7406\uff0cread\u9700\u8981\u4e00\u76f4\u8bfb\uff0c\u76f4\u5230\u8fd4\u56deEAGAIN\u4e3a\u6b62\r\n<span class=\"token number\">3<\/span><span class=\"token punctuation\">.<\/span> \u5f53\u9700\u8981\u5199\u51fa\u6570\u636e\u65f6\uff0c\u628a\u6570\u636ewrite\u5230fd\u4e2d\uff0c\u76f4\u5230\u6570\u636e\u5168\u90e8\u5199\u5b8c\uff0c\u6216\u8005write\u8fd4\u56deEAGAIN\r\n<span class=\"token number\">4<\/span><span class=\"token punctuation\">.<\/span> \u5f53EPOLLOUT\u4e8b\u4ef6\u5230\u8fbe\u65f6\uff0c\u7ee7\u7eed\u628a\u6570\u636ewrite\u5230fd\u4e2d\uff0c\u76f4\u5230\u6570\u636e\u5168\u90e8\u5199\u5b8c\uff0c\u6216\u8005write\u8fd4\u56deEAGAIN<\/pre>\n<p>3.LT\u548cET\u4e24\u8005\u6bd4\u8f83\uff1a<\/p>\n<pre class=\"prism-token token  language-javascript\"><span class=\"token number\">1<\/span><span class=\"token punctuation\">.<\/span> \u4eceET\u7684\u5904\u7406\u8fc7\u7a0b\u4e2d\u53ef\u4ee5\u770b\u5230\uff0cET\u7684\u8981\u6c42\u662f\u9700\u8981\u4e00\u76f4\u8bfb\u5199\uff0c\u76f4\u5230\u8fd4\u56deEAGAIN\uff0c\u5426\u5219\u5c31\u4f1a\u9057\u6f0f\u4e8b\u4ef6\u3002\r\nET\u7684\u7f16\u7a0b\u53ef\u4ee5\u505a\u5230\u66f4\u52a0\u7b80\u6d01\uff0c\u67d0\u4e9b\u573a\u666f\u4e0b\u66f4\u52a0\u9ad8\u6548\uff0c\u4f46\u53e6\u4e00\u65b9\u9762\u5bb9\u6613\u9057\u6f0f\u4e8b\u4ef6\uff0c\u5bb9\u6613\u4ea7\u751fbug\u3002\r\n<span class=\"token number\">2<\/span><span class=\"token punctuation\">.<\/span> LT\u7684\u5904\u7406\u8fc7\u7a0b\u4e2d\uff0c\u76f4\u5230\u8fd4\u56deEAGAIN\u4e0d\u662f\u786c\u6027\u8981\u6c42\uff0c\u4f46\u901a\u5e38\u7684\u5904\u7406\u8fc7\u7a0b\u90fd\u4f1a\u8bfb\u5199\u76f4\u5230\u8fd4\u56deEAGAIN\uff0c\r\n\u4f46LT\u6bd4ET\u591a\u4e86\u4e00\u4e2a\u5f00\u5173EPOLLOUT\u4e8b\u4ef6\u7684\u6b65\u9aa4\u3002\r\nLT\u7684\u7f16\u7a0b\u4e0epoll<span class=\"token operator\">\/<\/span>select\u63a5\u8fd1\uff0c\u7b26\u5408\u4e00\u76f4\u4ee5\u6765\u7684\u4e60\u60ef\uff0c\u4e0d\u6613\u51fa\u9519\u3002<\/pre>\n<p><strong>\u4e8c \u3001\u5185\u6838\u8c03\u5ea6\u5b9e\u73b0\u65b9\u5f0f<\/strong><\/p>\n<ul class=\"ul-level-0\">\n<li>\u5728epoll_wait\u7684\u65f6\u5019\uff0c\u963b\u585e\u7b49\u5f85\u4e8b\u4ef6\u53d1\u751f\uff0c \u4e8b\u4ef6\u53d1\u751f\u65f6\u901a\u8fc7\u56de\u8c03\u6302\u5230ready list\u94fe\u8868\u4e2d<\/li>\n<li>epoll_wait\u8fd4\u56de\uff0c \u5904\u7406ready list, \u8fd4\u56de\u4e8b\u4ef6\u7ed9\u8c03\u7528\u8005<\/li>\n<li>\u6b64\u65f6ET\u6a21\u5f0f\u5df2\u7ecf\u5c06\u4e8b\u4ef6\u4eceready list\u4e2d\u5220\u9664\uff0cLT\u6a21\u5f0f\u4e2d\u8fd8\u5b58\u5728<\/li>\n<li>\u6b64\u65f6\u5047\u8bbe\u5e94\u7528\u7a0b\u5e8f\u5904\u7406\u5b8c\u4e86\u4e8b\u4ef6\uff0c \u518d\u6b21epoll_wait. ET\u6a21\u5f0f\u7ee7\u7eed\u963b\u585e<\/li>\n<li>LT\u6a21\u5f0f\u7531\u4e8eready list\u4e2d\u4f9d\u7136\u5b58\u5728\u4e8b\u4ef6\u5219\u4e0d\u4f1a\u963b\u585e\uff0c \u5bf9\u8fd9\u4e9bsocket\u8c03\u7528poll\u65b9\u6cd5\u83b7\u53d6\u6700\u65b0\u7684\u4e8b\u4ef6\u4fe1\u606f\uff0c\u5982\u679c\u786e\u8ba4\u6ca1\u4e8b\u4ef6\u4e86\u624d\u4f1a\u5220\u9664\u3002<\/li>\n<\/ul>\n<figure>\n<div class=\"image-block\"><img decoding=\"async\" class=\"\" src=\"https:\/\/ask.qcloudimg.com\/http-save\/yehe-5794803\/gdf5w6awgm.png?imageView2\/2\/w\/1620\" \/><\/div>\n<\/figure>\n<p><strong>\u4e09\u3001 \u6c34\u5e73\u89e6\u53d1\u548c\u8fb9\u7f18\u89e6\u53d1\u7684\u5e38\u89c1\u95ee\u9898<\/strong><\/p>\n<p><strong>1. \u6c34\u5e73\u89e6\u53d1\u7684\u95ee\u9898\uff1a\u4e0d\u5fc5\u8981\u7684\u5524\u9192<\/strong><\/p>\n<ol class=\"ol-level-0\">\n<li>\u5185\u6838\uff1a\u6536\u5230\u4e00\u4e2a\u65b0\u5efa\u8fde\u63a5\u7684\u8bf7\u6c42<\/li>\n<li>\u5185\u6838\uff1a\u7531\u4e8e \u201c\u60ca\u7fa4\u6548\u5e94\u201d \uff0c\u5524\u9192\u4e24\u4e2a\u6b63\u5728 epoll_wait() \u7684\u7ebf\u7a0b A \u548c\u7ebf\u7a0b B<\/li>\n<li>\u7ebf\u7a0bA\uff1aepoll_wait() \u8fd4\u56de<\/li>\n<li>\u7ebf\u7a0bB\uff1aepoll_wait() \u8fd4\u56de<\/li>\n<li>\u7ebf\u7a0bA\uff1a\u6267\u884c accept() \u5e76\u4e14\u6210\u529f<\/li>\n<li>\u7ebf\u7a0bB\uff1a\u6267\u884c accept() \u5931\u8d25\uff0caccept() \u8fd4\u56de EAGAIN<\/li>\n<\/ol>\n<h3 id=\"2.-%E8%BE%B9%E7%BC%98%E8%A7%A6%E5%8F%91%E7%9A%84%E9%97%AE%E9%A2%98%EF%BC%9A%E4%B8%8D%E5%BF%85%E8%A6%81%E7%9A%84%E5%94%A4%E9%86%92%E4%BB%A5%E5%8F%8A%E9%A5%A5%E9%A5%BF\"><strong>2. \u8fb9\u7f18\u89e6\u53d1\u7684\u95ee\u9898\uff1a\u4e0d\u5fc5\u8981\u7684\u5524\u9192\u4ee5\u53ca\u9965\u997f<\/strong><\/h3>\n<p>1\uff09\u4e0d\u5fc5\u8981\u7684\u5524\u9192\uff1a<\/p>\n<pre class=\"prism-token token  language-javascript\"><span class=\"token number\">1<\/span><span class=\"token punctuation\">.<\/span>\u5185\u6838\uff1a\u6536\u5230\u7b2c\u4e00\u4e2a\u8fde\u63a5\u8bf7\u6c42\u3002\u7ebf\u7a0b A \u548c \u7ebf\u7a0b B \u4e24\u4e2a\u7ebf\u7a0b\u90fd\u5728 <span class=\"token function\">epoll_wait<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> \u4e0a\u7b49\u5f85\u3002\r\n\u7531\u4e8e\u91c7\u7528\u8fb9\u7f18\u89e6\u53d1\u6a21\u5f0f\uff0c\u6240\u4ee5\u53ea\u6709\u4e00\u4e2a\u7ebf\u7a0b\u4f1a\u6536\u5230\u901a\u77e5\u3002\u8fd9\u91cc\u5047\u5b9a\u7ebf\u7a0b A \u6536\u5230\u901a\u77e5\r\n<span class=\"token number\">2<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">\u7ebf\u7a0bA\uff1aepoll_wait<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> \u8fd4\u56de\r\n<span class=\"token number\">3<\/span><span class=\"token punctuation\">.<\/span>\u7ebf\u7a0bA\uff1a\u8c03\u7528 <span class=\"token function\">accpet<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> \u5e76\u4e14\u6210\u529f\r\n<span class=\"token number\">4<\/span><span class=\"token punctuation\">.<\/span>\u5185\u6838\uff1a\u6b64\u65f6 accept queue \u4e3a\u7a7a\uff0c\u6240\u4ee5\u5c06\u8fb9\u7f18\u89e6\u53d1\u7684 socket \u7684\u72b6\u6001\u4ece\u53ef\u8bfb\u7f6e\u6210\u4e0d\u53ef\u8bfb\r\n<span class=\"token number\">5<\/span><span class=\"token punctuation\">.<\/span>\u5185\u6838\uff1a\u6536\u5230\u7b2c\u4e8c\u4e2a\u5efa\u8fde\u8bf7\u6c42\r\n<span class=\"token number\">6<\/span><span class=\"token punctuation\">.<\/span>\u5185\u6838\uff1a\u6b64\u65f6\uff0c\u7531\u4e8e\u7ebf\u7a0b A \u8fd8\u5728\u6267\u884c <span class=\"token function\">accept<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> \u5904\u7406\uff0c\u53ea\u5269\u4e0b\u7ebf\u7a0b B \u5728\u7b49\u5f85 <span class=\"token function\">epoll_wait<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\uff0c\r\n\u4e8e\u662f\u5524\u9192\u7ebf\u7a0b B\u3002\r\n<span class=\"token number\">7<\/span><span class=\"token punctuation\">.<\/span>\u7ebf\u7a0bA\uff1a\u7ee7\u7eed\u6267\u884c <span class=\"token function\">accept<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> \u76f4\u5230\u8fd4\u56de EAGAIN\r\n<span class=\"token number\">8<\/span><span class=\"token punctuation\">.<\/span>\u7ebf\u7a0bB\uff1a\u6267\u884c <span class=\"token function\">accept<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\uff0c\u5e76\u8fd4\u56de EAGAIN\uff0c\u6b64\u65f6\u7ebf\u7a0b B <span class=\"token function\">\u53ef\u80fd\u6709\u70b9\u56f0\u60d1<\/span><span class=\"token punctuation\">(<\/span>\u201c\u660e\u660e\u901a\u77e5\u6211\u6709\u4e8b\u4ef6\uff0c\u7ed3\u679c\u5374\u8fd4\u56de EAGAIN\u201d<span class=\"token punctuation\">)<\/span>\r\n<span class=\"token number\">9<\/span><span class=\"token punctuation\">.<\/span>\u7ebf\u7a0bA\uff1a\u518d\u6b21\u6267\u884c <span class=\"token function\">accept<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\uff0c\u8fd9\u6b21\u7ec8\u4e8e\u8fd4\u56de EAGAIN<\/pre>\n<p>2\uff09\u9965\u997f\uff1a<\/p>\n<pre class=\"prism-token token  language-javascript\"><span class=\"token number\">1<\/span><span class=\"token punctuation\">.<\/span>\u5185\u6838\uff1a\u63a5\u6536\u5230\u4e24\u4e2a\u5efa\u8fde\u8bf7\u6c42\u3002\u7ebf\u7a0b A \u548c \u7ebf\u7a0b B \u4e24\u4e2a\u7ebf\u7a0b\u90fd\u5728\u7b49\u5728 <span class=\"token function\">epoll_wait<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\u3002\r\n\u7531\u4e8e\u91c7\u7528\u8fb9\u7f18\u89e6\u53d1\u6a21\u5f0f\uff0c\u53ea\u6709\u4e00\u4e2a\u7ebf\u7a0b\u4f1a\u88ab\u5524\u9192\uff0c\u6211\u4eec\u8fd9\u91cc\u5047\u5b9a\u7ebf\u7a0b A \u5148\u88ab\u5524\u9192\r\n<span class=\"token number\">2<\/span><span class=\"token punctuation\">.<\/span><span class=\"token function\">\u7ebf\u7a0bA\uff1aepoll_wait<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> \u8fd4\u56de\r\n<span class=\"token number\">3<\/span><span class=\"token punctuation\">.<\/span>\u7ebf\u7a0bA\uff1a\u8c03\u7528 <span class=\"token function\">accpet<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> \u5e76\u4e14\u6210\u529f\r\n<span class=\"token number\">4<\/span><span class=\"token punctuation\">.<\/span>\u5185\u6838\uff1a\u6536\u5230\u7b2c\u4e09\u4e2a\u5efa\u8fde\u8bf7\u6c42\u3002\u7531\u4e8e\u7ebf\u7a0b A <span class=\"token function\">\u8fd8\u6ca1\u6709\u5904\u7406\u5b8c<\/span><span class=\"token punctuation\">(<\/span>\u6ca1\u6709\u8fd4\u56de EAGAIN<span class=\"token punctuation\">)<\/span>\uff0c\r\n\u5f53\u524d socket \u8fd8\u5904\u4e8e\u53ef\u8bfb\u7684\u72b6\u6001\uff0c\u7531\u4e8e\u662f\u8fb9\u7f18\u89e6\u53d1\u6a21\u5f0f\uff0c\u6240\u6709\u4e0d\u4f1a\u4ea7\u751f\u65b0\u7684\u4e8b\u4ef6\r\n<span class=\"token number\">5<\/span><span class=\"token punctuation\">.<\/span>\u7ebf\u7a0bA\uff1a\u7ee7\u7eed\u6267\u884c <span class=\"token function\">accept<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> \u5e0c\u671b\u8fd4\u56de EAGAIN \u518d\u8fdb\u5165 <span class=\"token function\">epoll_wait<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> \u7b49\u5f85\uff0c\r\n\u7136\u800c\u5b83\u53c8 <span class=\"token function\">accept<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span> \u6210\u529f\u5e76\u5904\u7406\u4e86\u4e00\u4e2a\u65b0\u8fde\u63a5\r\n<span class=\"token number\">6<\/span><span class=\"token punctuation\">.<\/span>\u5185\u6838\uff1a\u53c8\u6536\u5230\u4e86\u7b2c\u56db\u4e2a\u5efa\u8fde\u8bf7\u6c42\r\n<span class=\"token number\">7<\/span><span class=\"token punctuation\">.<\/span>\u7ebf\u7a0bA\uff1a\u53c8\u7ee7\u7eed\u6267\u884c <span class=\"token function\">accept<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span>\uff0c\u7ed3\u679c\u53c8\u8fd4\u56de\u6210\u529f<\/pre>\n<p><strong>\u53c2\u8003\u6587\u6863\uff1a<\/strong><\/p>\n<p>https:\/\/blog.csdn.net\/dongfuye\/article\/details\/50880251<\/p>\n<p>https:\/\/www.zhihu.com\/question\/20502870<\/p>\n<p>https:\/\/blog.lucode.net\/linux\/epoll-tutorial.html<\/p>\n<p>https:\/\/plantegg.github.io\/2019\/12\/09\/epoll%E7%9A%84LT%E5%92%8CET\/<\/p>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u539f\u6587\u5730\u5740 \u672c\u7bc7\u662f\u591a\u8def\u590d\u7528\u7684\u7b2c\u4e94\u7bc7\uff0c\u4e3b\u8981\u6765<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout","footnotes":""},"categories":[],"tags":[117],"class_list":["post-5043","post","type-post","status-publish","format-standard","hentry","tag-01-linux"],"_links":{"self":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/5043","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/comments?post=5043"}],"version-history":[{"count":0,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/posts\/5043\/revisions"}],"wp:attachment":[{"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/media?parent=5043"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/categories?post=5043"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/i007.cc\/wordpress\/wp-json\/wp\/v2\/tags?post=5043"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}