Files
oldlinux-website/Book-Lite/code-list/html/P14-6.html
2024-03-17 14:28:14 +08:00

2276 lines
74 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name=Generator content="Microsoft Word 14 (filtered)">
<style>
<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
{font-family:宋体;
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:黑体;
panose-1:2 1 6 9 6 1 1 1 1 1;}
@font-face
{font-family:黑体;
panose-1:2 1 6 9 6 1 1 1 1 1;}
@font-face
{font-family:方正小标宋简体;}
@font-face
{font-family:"\@黑体";
panose-1:2 1 6 9 6 1 1 1 1 1;}
@font-face
{font-family:"\@宋体";
panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
{font-family:"\@方正小标宋简体";}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
h1
{mso-style-link:"标题 1 Char";
margin-top:17.0pt;
margin-right:0cm;
margin-bottom:16.5pt;
margin-left:7.2pt;
text-align:center;
text-indent:-7.2pt;
page-break-after:avoid;
font-size:22.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
h2
{mso-style-link:"标题 2 Char";
margin-top:13.0pt;
margin-right:0cm;
margin-bottom:13.0pt;
margin-left:0cm;
text-align:justify;
text-justify:inter-ideograph;
text-indent:0cm;
page-break-after:avoid;
font-size:16.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
h3
{mso-style-link:"标题 3 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:0cm;
page-break-after:avoid;
font-size:14.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
h4
{mso-style-link:"标题 4 Char";
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:28.8pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-28.8pt;
page-break-after:avoid;
font-size:12.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
h5
{mso-style-link:"标题 5 Char";
margin-top:14.0pt;
margin-right:0cm;
margin-bottom:14.5pt;
margin-left:36.0pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-36.0pt;
line-height:156%;
page-break-after:avoid;
font-size:14.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
h6
{mso-style-link:"标题 6 Char";
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.2pt;
margin-left:43.2pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-43.2pt;
line-height:133%;
page-break-after:avoid;
font-size:12.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
p.MsoHeading7, li.MsoHeading7, div.MsoHeading7
{mso-style-link:"标题 7 Char";
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.2pt;
margin-left:50.4pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-50.4pt;
line-height:133%;
page-break-after:avoid;
font-size:12.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.MsoHeading8, li.MsoHeading8, div.MsoHeading8
{mso-style-link:"标题 8 Char";
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.2pt;
margin-left:57.6pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-72.0pt;
line-height:133%;
page-break-after:avoid;
font-size:12.0pt;
font-family:"Arial","sans-serif";}
p.MsoHeading9, li.MsoHeading9, div.MsoHeading9
{mso-style-link:"标题 9 Char";
margin-top:12.0pt;
margin-right:0cm;
margin-bottom:3.2pt;
margin-left:64.8pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-79.2pt;
line-height:133%;
page-break-after:avoid;
font-size:10.0pt;
font-family:"Arial","sans-serif";}
p.MsoIndex1, li.MsoIndex1, div.MsoIndex1
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:10.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.MsoIndex2, li.MsoIndex2, div.MsoIndex2
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.MsoIndex3, li.MsoIndex3, div.MsoIndex3
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:31.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.MsoIndex4, li.MsoIndex4, div.MsoIndex4
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:42.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.MsoIndex5, li.MsoIndex5, div.MsoIndex5
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:52.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.MsoIndex6, li.MsoIndex6, div.MsoIndex6
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:63.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.MsoIndex7, li.MsoIndex7, div.MsoIndex7
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:73.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.MsoIndex8, li.MsoIndex8, div.MsoIndex8
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:84.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.MsoIndex9, li.MsoIndex9, div.MsoIndex9
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:94.5pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-10.5pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.MsoToc1, li.MsoToc1, div.MsoToc1
{margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.MsoToc2, li.MsoToc2, div.MsoToc2
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.MsoToc3, li.MsoToc3, div.MsoToc3
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:42.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.MsoToc4, li.MsoToc4, div.MsoToc4
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:31.5pt;
margin-bottom:.0001pt;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.MsoToc5, li.MsoToc5, div.MsoToc5
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:42.0pt;
margin-bottom:.0001pt;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.MsoToc6, li.MsoToc6, div.MsoToc6
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:52.5pt;
margin-bottom:.0001pt;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.MsoToc7, li.MsoToc7, div.MsoToc7
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:63.0pt;
margin-bottom:.0001pt;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.MsoToc8, li.MsoToc8, div.MsoToc8
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:73.5pt;
margin-bottom:.0001pt;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.MsoToc9, li.MsoToc9, div.MsoToc9
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:84.0pt;
margin-bottom:.0001pt;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.MsoFootnoteText, li.MsoFootnoteText, div.MsoFootnoteText
{mso-style-link:"脚注文本 Char";
margin:0cm;
margin-bottom:.0001pt;
layout-grid-mode:char;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.MsoCommentText, li.MsoCommentText, div.MsoCommentText
{mso-style-link:"批注文字 Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.MsoHeader, li.MsoHeader, div.MsoHeader
{mso-style-link:"页眉 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
layout-grid-mode:char;
border:none;
padding:0cm;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.MsoFooter, li.MsoFooter, div.MsoFooter
{mso-style-link:"页脚 Char";
margin:0cm;
margin-bottom:.0001pt;
layout-grid-mode:char;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.MsoIndexHeading, li.MsoIndexHeading, div.MsoIndexHeading
{mso-style-name:"索引标题\,索引类目\,索引类目1\,索引类目2";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.MsoCaption, li.MsoCaption, div.MsoCaption
{margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Arial","sans-serif";}
p.MsoTof, li.MsoTof, div.MsoTof
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:42.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-21.0pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
span.MsoFootnoteReference
{vertical-align:super;}
p.MsoList, li.MsoList, div.MsoList
{margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.0pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.MsoList2, li.MsoList2, div.MsoList2
{margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.MsoList4, li.MsoList4, div.MsoList4
{margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.MsoDate, li.MsoDate, div.MsoDate
{mso-style-link:"日期 Char";
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:5.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
{mso-style-name:"超链接\,超级链接";
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{color:purple;
text-decoration:underline;}
p
{mso-style-name:"普通\(网站\)\,普通 \(Web\)\,普通 \(Web\)1\,普通 \(Web\)2\,普通 \(Web\)3";
margin-right:0cm;
margin-left:0cm;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
pre
{mso-style-name:"HTML 预设格式\,HTML 预先格式化\,HTML 预先格式化1\,HTML 预先格式化2\,HTML 预先格式化3";
mso-style-link:"HTML 预设格式 Char\,HTML 预先格式化 Char\,HTML 预先格式化1 Char\,HTML 预先格式化2 Char\,HTML 预先格式化3 Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:12.0pt;
font-family:"Times New Roman","serif";}
tt
{font-family:;}
p.MsoCommentSubject, li.MsoCommentSubject, div.MsoCommentSubject
{mso-style-link:"批注主题 Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
{mso-style-link:"批注框文本 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.1, li.1, div.1
{mso-style-name:1;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.0pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.a, li.a, div.a
{mso-style-name:;
mso-style-link:"代码程序 Char";
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:;}
span.Char
{mso-style-name:"代码程序 Char";
mso-style-link:;
font-family:;}
p.a0, li.a0, div.a0
{mso-style-name:;
mso-style-link:"图说明 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
span.Char0
{mso-style-name:"图说明 Char";
mso-style-link:;
font-family:;}
p.0, li.0, div.0
{mso-style-name:0;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:36.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.10, li.10, div.10
{mso-style-name:1;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:18.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.11, li.11, div.11
{mso-style-name:1;
margin-top:7.8pt;
margin-right:0cm;
margin-bottom:7.8pt;
margin-left:0cm;
text-align:center;
font-size:22.0pt;
font-family:;
font-weight:bold;}
p.a1, li.a1, div.a1
{mso-style-name:;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.3CharChar, li.3CharChar, div.3CharChar
{mso-style-name:"图中文字3 Char Char";
mso-style-link:"图中文字3 Char Char Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
line-height:9.0pt;
font-size:8.0pt;
font-family:"Times New Roman","serif";}
span.3CharCharChar
{mso-style-name:"图中文字3 Char Char Char";
mso-style-link:"图中文字3 Char Char";
font-family:;}
p.post, li.post, div.post
{mso-style-name:post;
margin:0cm;
margin-bottom:.0001pt;
text-align:right;
line-height:11.0pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.3, li.3, div.3
{mso-style-name:3;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
span.3CharChar1CharCharChar
{mso-style-name:"图中文字3 Char Char1 Char Char Char";
font-family:;}
span.3CharChar1CharChar
{mso-style-name:"图中文字3 Char Char1 Char Char";
font-family:;}
p.5Char, li.5Char, div.5Char
{mso-style-name:"图中文字5号 Char";
mso-style-link:"图中文字5号 Char Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
span.5CharChar
{mso-style-name:"图中文字5号 Char Char";
mso-style-link:"图中文字5号 Char";
font-family:;}
p.5CharChar0, li.5CharChar0, div.5CharChar0
{mso-style-name:"图中文字小5号 Char Char";
mso-style-link:"图中文字小5号 Char Char Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
span.5CharCharChar
{mso-style-name:"图中文字小5号 Char Char Char";
mso-style-link:"图中文字小5号 Char Char";
font-family:;}
p.5Char0, li.5Char0, div.5Char0
{mso-style-name:"图中文字小5号 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.5, li.5, div.5
{mso-style-name:5;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
layout-grid-mode:char;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.2, li.2, div.2
{mso-style-name:2;
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:;}
p.20, li.20, div.20
{mso-style-name:2;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.21, li.21, div.21
{mso-style-name:2;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.3CharCharCharCharChar, li.3CharCharCharCharChar, div.3CharCharCharCharChar
{mso-style-name:"图中文字3 Char Char Char Char Char";
mso-style-link:"图中文字3 Char Char Char Char Char Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
line-height:9.0pt;
font-size:8.0pt;
font-family:"Times New Roman","serif";}
span.3CharCharCharCharCharChar
{mso-style-name:"图中文字3 Char Char Char Char Char Char";
mso-style-link:"图中文字3 Char Char Char Char Char";
font-family:;}
p.a2, li.a2, div.a2
{mso-style-name:;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.110, li.110, div.110
{mso-style-name:"样式 标题 1 + 居中1";
margin-right:0cm;
margin-left:0cm;
text-align:center;
page-break-after:avoid;
font-size:22.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
span.1Char
{mso-style-name:"标题 1 Char";
mso-style-link:"标题 1";
font-weight:bold;}
p.22, li.22, div.22
{mso-style-name:"样式 列表 2 + 居中";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.23, li.23, div.23
{mso-style-name:2;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.50, li.50, div.50
{mso-style-name:5;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.111, li.111, div.111
{mso-style-name:11;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.0pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.12, li.12, div.12
{mso-style-name:1;
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:;}
p.13, li.13, div.13
{mso-style-name:1;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.01, li.01, div.01
{mso-style-name:01;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:36.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.112, li.112, div.112
{mso-style-name:11;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:18.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.113, li.113, div.113
{mso-style-name:11;
margin-top:7.8pt;
margin-right:0cm;
margin-bottom:7.8pt;
margin-left:0cm;
text-align:center;
font-size:22.0pt;
font-family:;
font-weight:bold;}
p.14, li.14, div.14
{mso-style-name:1;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.3Char1, li.3Char1, div.3Char1
{mso-style-name:"图中文字3 Char1";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
line-height:9.0pt;
font-size:8.0pt;
font-family:"Times New Roman","serif";}
p.post1, li.post1, div.post1
{mso-style-name:post1;
margin:0cm;
margin-bottom:.0001pt;
text-align:right;
line-height:11.0pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.31, li.31, div.31
{mso-style-name:31;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.5Char1, li.5Char1, div.5Char1
{mso-style-name:"图中文字5号 Char1";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.5CharChar1, li.5CharChar1, div.5CharChar1
{mso-style-name:"图中文字小5号 Char Char1";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.5Char10, li.5Char10, div.5Char10
{mso-style-name:"图中文字小5号 Char1";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.51, li.51, div.51
{mso-style-name:51;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.120, li.120, div.120
{mso-style-name:12;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.0pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.02, li.02, div.02
{mso-style-name:02;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:36.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.121, li.121, div.121
{mso-style-name:12;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:18.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.122, li.122, div.122
{mso-style-name:12;
margin-top:7.8pt;
margin-right:0cm;
margin-bottom:7.8pt;
margin-left:0cm;
text-align:center;
font-size:22.0pt;
font-family:;
font-weight:bold;}
p.3Char2, li.3Char2, div.3Char2
{mso-style-name:"图中文字3 Char2";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
line-height:9.0pt;
font-size:8.0pt;
font-family:"Times New Roman","serif";}
p.post2, li.post2, div.post2
{mso-style-name:post2;
margin:0cm;
margin-bottom:.0001pt;
text-align:right;
line-height:11.0pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.32, li.32, div.32
{mso-style-name:32;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.5Char2, li.5Char2, div.5Char2
{mso-style-name:"图中文字小5号 Char2";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.52, li.52, div.52
{mso-style-name:52;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.3CharCharCharChar, li.3CharCharCharChar, div.3CharCharCharChar
{mso-style-name:"图中文字3 Char Char Char Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
line-height:9.0pt;
font-size:8.0pt;
font-family:"Times New Roman","serif";}
p.130, li.130, div.130
{mso-style-name:13;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.0pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.30, li.30, div.30
{mso-style-name:3;
margin:0cm;
margin-bottom:.0001pt;
font-size:10.0pt;
font-family:;}
p.03, li.03, div.03
{mso-style-name:03;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:36.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.131, li.131, div.131
{mso-style-name:13;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:18.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.132, li.132, div.132
{mso-style-name:13;
margin-top:7.8pt;
margin-right:0cm;
margin-bottom:7.8pt;
margin-left:0cm;
text-align:center;
font-size:22.0pt;
font-family:;
font-weight:bold;}
p.33, li.33, div.33
{mso-style-name:3;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.3Char3, li.3Char3, div.3Char3
{mso-style-name:"图中文字3 Char3";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
line-height:9.0pt;
font-size:8.0pt;
font-family:"Times New Roman","serif";}
p.post3, li.post3, div.post3
{mso-style-name:post3;
margin:0cm;
margin-bottom:.0001pt;
text-align:right;
line-height:11.0pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.330, li.330, div.330
{mso-style-name:33;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.5Char20, li.5Char20, div.5Char20
{mso-style-name:"图中文字5号 Char2";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.5CharChar2, li.5CharChar2, div.5CharChar2
{mso-style-name:"图中文字小5号 Char Char2";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.5Char3, li.5Char3, div.5Char3
{mso-style-name:"图中文字小5号 Char3";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.53, li.53, div.53
{mso-style-name:53;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.3Char, li.3Char, div.3Char
{mso-style-name:"图中文字3 Char";
mso-style-link:"图中文字3 Char Char5";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
line-height:9.0pt;
font-size:8.0pt;
font-family:"Times New Roman","serif";}
span.3CharChar5
{mso-style-name:"图中文字3 Char Char5";
mso-style-link:"图中文字3 Char";
font-family:;}
p.54, li.54, div.54
{mso-style-name:5;
margin:0cm;
margin-bottom:.0001pt;
line-height:9.0pt;
text-autospace:ideograph-numeric;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.24, li.24, div.24
{mso-style-name:2;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:22.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.15, li.15, div.15
{mso-style-name:"样式 标题 1 + 居中";
margin-top:17.0pt;
margin-right:0cm;
margin-bottom:16.5pt;
margin-left:0cm;
text-align:center;
page-break-after:avoid;
font-size:22.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.25, li.25, div.25
{mso-style-name:"样式 标题 2 + 行距\: 单倍行距";
margin-top:13.0pt;
margin-right:0cm;
margin-bottom:13.0pt;
margin-left:28.9pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-28.9pt;
page-break-after:avoid;
font-size:16.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
span.2Char
{mso-style-name:"标题 2 Char";
mso-style-link:"标题 2";
font-family:"Arial","sans-serif";
font-weight:bold;}
p.34, li.34, div.34
{mso-style-name:3;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.35, li.35, div.35
{mso-style-name:3;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.4, li.4, div.4
{mso-style-name:4;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.40, li.40, div.40
{mso-style-name:4;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.0pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.41, li.41, div.41
{mso-style-name:4;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.55, li.55, div.55
{mso-style-name:5;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.56, li.56, div.56
{mso-style-name:5;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.57, li.57, div.57
{mso-style-name:5;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.6, li.6, div.6
{mso-style-name:6;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.60, li.60, div.60
{mso-style-name:6;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.61, li.61, div.61
{mso-style-name:6;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.7, li.7, div.7
{mso-style-name:7;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.70, li.70, div.70
{mso-style-name:7;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.71, li.71, div.71
{mso-style-name:7;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.8, li.8, div.8
{mso-style-name:8;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.9, li.9, div.9
{mso-style-name:9;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.90, li.90, div.90
{mso-style-name:9;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.100, li.100, div.100
{mso-style-name:10;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.101, li.101, div.101
{mso-style-name:10;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.114, li.114, div.114
{mso-style-name:11;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.115, li.115, div.115
{mso-style-name:11;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.116, li.116, div.116
{mso-style-name:11;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.123, li.123, div.123
{mso-style-name:12;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.124, li.124, div.124
{mso-style-name:12;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.133, li.133, div.133
{mso-style-name:13;
mso-style-link:"图说明13 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
span.13Char
{mso-style-name:"图说明13 Char";
mso-style-link:13;
font-family:;}
p.134, li.134, div.134
{mso-style-name:13;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.26, li.26, div.26
{mso-style-name:2;
margin-top:13.0pt;
margin-right:0cm;
margin-bottom:13.0pt;
margin-left:0cm;
text-align:justify;
text-justify:inter-ideograph;
page-break-after:avoid;
font-size:16.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
p.36, li.36, div.36
{mso-style-name:3;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
page-break-after:avoid;
font-size:14.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
span.3Char0
{mso-style-name:"标题 3 Char";
mso-style-link:"标题 3";
font-family:"Arial","sans-serif";
font-weight:bold;}
p.16, li.16, div.16
{mso-style-name:1;
margin-top:17.0pt;
margin-right:0cm;
margin-bottom:16.5pt;
margin-left:0cm;
text-align:center;
page-break-after:avoid;
font-size:22.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.17, li.17, div.17
{mso-style-name:1;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.42, li.42, div.42
{mso-style-name:4;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
page-break-after:avoid;
font-size:12.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
span.4Char
{mso-style-name:"标题 4 Char";
mso-style-link:"标题 4";
font-family:"Arial","sans-serif";
font-weight:bold;}
p.a3, li.a3, div.a3
{mso-style-name:;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.27, li.27, div.27
{mso-style-name:2;
margin-top:13.0pt;
margin-right:0cm;
margin-bottom:13.0pt;
margin-left:28.8pt;
text-align:justify;
text-justify:inter-ideograph;
text-indent:-28.8pt;
page-break-after:avoid;
font-size:16.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
p.a4, li.a4, div.a4
{mso-style-name:;
margin-top:7.8pt;
margin-right:0cm;
margin-bottom:7.8pt;
margin-left:0cm;
text-align:center;
page-break-after:avoid;
font-size:22.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.18, li.18, div.18
{mso-style-name:1;
margin-top:7.8pt;
margin-right:0cm;
margin-bottom:7.8pt;
margin-left:0cm;
text-align:center;
page-break-after:avoid;
font-size:22.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.19, li.19, div.19
{mso-style-name:1;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.25pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.25pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.1a, li.1a, div.1a
{mso-style-name:1;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.25pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.25pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.37, li.37, div.37
{mso-style-name:3;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.62, li.62, div.62
{mso-style-name:6;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
layout-grid-mode:char;
font-size:7.5pt;
font-family:"Times New Roman","serif";}
p.a5, li.a5, div.a5
{mso-style-name:;
mso-style-link:"正文代码 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
span.Char1
{mso-style-name:"正文代码 Char";
mso-style-link:;
font-family:;}
p.43, li.43, div.43
{mso-style-name:"样式 标题 4 +";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
page-break-after:avoid;
font-size:12.0pt;
font-family:"Arial","sans-serif";
font-weight:bold;}
p.140, li.140, div.140
{mso-style-name:14;
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.25pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.25pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.141, li.141, div.141
{mso-style-name:14;
mso-style-link:"图说明14 Char";
margin-top:0cm;
margin-right:0cm;
margin-bottom:0cm;
margin-left:21.25pt;
margin-bottom:.0001pt;
text-align:center;
text-indent:-21.25pt;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
span.14Char
{mso-style-name:"图说明14 Char";
mso-style-link:14;
font-family:;}
p.a6, li.a6, div.a6
{mso-style-name:;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.a7, li.a7, div.a7
{mso-style-name:"样式 正文 +";
mso-style-link:"样式 正文 + Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
span.Char2
{mso-style-name:"样式 正文 + Char";
mso-style-link:"样式 正文 +";
font-family:"Times New Roman","serif";}
p.a8, li.a8, div.a8
{mso-style-name:;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:;}
p.a9, li.a9, div.a9
{mso-style-name:;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:"Arial","sans-serif";}
p.aa, li.aa, div.aa
{mso-style-name:;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:"Arial","sans-serif";}
p.ab, li.ab, div.ab
{mso-style-name:;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:"Arial","sans-serif";}
p.ac, li.ac, div.ac
{mso-style-name:;
margin-top:0cm;
margin-right:21.0pt;
margin-bottom:0cm;
margin-left:21.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
border:none;
padding:0cm;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.125, li.125, div.125
{mso-style-name:"样式 标题 1 + 居中2";
margin-top:17.0pt;
margin-right:0cm;
margin-bottom:16.5pt;
margin-left:0cm;
text-align:center;
page-break-after:avoid;
font-size:22.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.ad, li.ad, div.ad
{mso-style-name:"样式 题注 + 宋体 五号 居中";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.5pt;
font-family:;}
p.1b, li.1b, div.1b
{mso-style-name:1;
margin-top:17.0pt;
margin-right:0cm;
margin-bottom:16.5pt;
margin-left:0cm;
line-height:240%;
page-break-after:avoid;
font-size:16.0pt;
font-family:"Times New Roman","serif";
font-weight:bold;}
p.38, li.38, div.38
{mso-style-name:3;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
page-break-after:avoid;
font-size:12.0pt;
font-family:;}
p.63, li.63, div.63
{mso-style-name:6;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:7.5pt;
font-family:"Times New Roman","serif";}
p.64, li.64, div.64
{mso-style-name:6;
margin:0cm;
margin-bottom:.0001pt;
line-height:10.0pt;
layout-grid-mode:char;
font-size:7.5pt;
font-family:"Times New Roman","serif";}
p.65, li.65, div.65
{mso-style-name:6;
mso-style-link:"图中文字6号 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
line-height:10.0pt;
layout-grid-mode:char;
font-size:7.5pt;
font-family:"Times New Roman","serif";}
span.6Char
{mso-style-name:"图中文字6号 Char";
mso-style-link:6;
font-family:;}
p.ae, li.ae, div.ae
{mso-style-name:;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.28, li.28, div.28
{mso-style-name:2;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.af, li.af, div.af
{mso-style-name:;
margin-top:6.0pt;
margin-right:0cm;
margin-bottom:0cm;
margin-left:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
page-break-after:avoid;
font-size:14.0pt;
font-family:;}
p.1c, li.1c, div.1c
{mso-style-name:1;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:16.0pt;
font-family:"Times New Roman","serif";}
p.af0, li.af0, div.af0
{mso-style-name:;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Arial","sans-serif";}
p.af1, li.af1, div.af1
{mso-style-name:"样式 题注 + 居中";
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
p.ListTitle, li.ListTitle, div.ListTitle
{mso-style-name:ListTitle;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Arial","sans-serif";}
p.FigureTitle, li.FigureTitle, div.FigureTitle
{mso-style-name:FigureTitle;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Arial","sans-serif";}
p.TableTitle, li.TableTitle, div.TableTitle
{mso-style-name:TableTitle;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Arial","sans-serif";}
p.ProgramTitle, li.ProgramTitle, div.ProgramTitle
{mso-style-name:ProgramTitle;
margin:0cm;
margin-bottom:.0001pt;
text-align:center;
font-size:10.0pt;
font-family:"Arial","sans-serif";}
p.RightText, li.RightText, div.RightText
{mso-style-name:RightText;
margin-top:0cm;
margin-right:21.0pt;
margin-bottom:0cm;
margin-left:42.0pt;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
border:none;
padding:0cm;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.af2, li.af2, div.af2
{mso-style-name:;
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.af3, li.af3, div.af3
{mso-style-name:;
mso-style-link:"关键词 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
span.Char3
{mso-style-name:"关键词 Char";
mso-style-link:;
font-family:;}
p.af4, li.af4, div.af4
{mso-style-name:;
mso-style-link:"文件名 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
span.Char4
{mso-style-name:"文件名 Char";
mso-style-link:;
font-family:;}
p.af5, li.af5, div.af5
{mso-style-name:;
mso-style-link:"选项 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
span.Char5
{mso-style-name:"选项 Char";
mso-style-link:;
font-family:;}
p.af6, li.af6, div.af6
{mso-style-name:;
mso-style-link:"命令行 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
span.Char6
{mso-style-name:"命令行 Char";
mso-style-link:;
font-family:;}
p.af7, li.af7, div.af7
{mso-style-name:;
mso-style-link:"函数名 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
span.Char7
{mso-style-name:"函数名 Char";
mso-style-link:;
font-family:;}
p.af8, li.af8, div.af8
{mso-style-name:;
mso-style-link:"寄存器名 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
span.Char8
{mso-style-name:"寄存器名 Char";
mso-style-link:;
font-family:"Times New Roman","serif";}
p.af9, li.af9, div.af9
{mso-style-name:;
mso-style-link:"变量名 Char";
margin:0cm;
margin-bottom:.0001pt;
text-align:justify;
text-justify:inter-ideograph;
font-size:10.0pt;
font-family:"Times New Roman","serif";}
span.Char9
{mso-style-name:"变量名 Char";
mso-style-link:;
font-family:;}
p.58, li.58, div.58
{mso-style-name:5;
margin:0cm;
margin-bottom:.0001pt;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.59, li.59, div.59
{mso-style-name:5;
margin:0cm;
margin-bottom:.0001pt;
layout-grid-mode:char;
font-size:9.0pt;
font-family:"Times New Roman","serif";}
p.926, li.926, div.926
{mso-style-name:"样式 代码程序 + 左侧\: 9\.26 厘米";
margin:0cm;
margin-bottom:.0001pt;
layout-grid-mode:char;
font-size:10.0pt;
font-family:;}
span.5Char4
{mso-style-name:"标题 5 Char";
mso-style-link:"标题 5";
font-weight:bold;}
span.6Char0
{mso-style-name:"标题 6 Char";
mso-style-link:"标题 6";
font-family:"Arial","sans-serif";
font-weight:bold;}
span.7Char
{mso-style-name:"标题 7 Char";
mso-style-link:"标题 7";
font-weight:bold;}
span.8Char
{mso-style-name:"标题 8 Char";
mso-style-link:"标题 8";
font-family:"Arial","sans-serif";}
span.9Char
{mso-style-name:"标题 9 Char";
mso-style-link:"标题 9";
font-family:"Arial","sans-serif";}
span.Chara
{mso-style-name:"脚注文本 Char";
mso-style-link:;
font-family:;}
span.Charb
{mso-style-name:"批注文字 Char";
mso-style-link:;
font-family:;}
span.Charc
{mso-style-name:"页眉 Char";
mso-style-link:;
font-family:;}
span.Chard
{mso-style-name:"页脚 Char";
mso-style-link:;
font-family:;}
span.Chare
{mso-style-name:"日期 Char";
mso-style-link:;
font-family:;}
span.HTMLChar
{mso-style-name:"HTML 预设格式 Char\,HTML 预先格式化 Char\,HTML 预先格式化1 Char\,HTML 预先格式化2 Char\,HTML 预先格式化3 Char";
mso-style-link:"HTML 预设格式\,HTML 预先格式化\,HTML 预先格式化1\,HTML 预先格式化2\,HTML 预先格式化3";
font-family:;}
span.Charf
{mso-style-name:"批注主题 Char";
mso-style-link:;
font-family:;
font-weight:bold;}
span.Charf0
{mso-style-name:"批注框文本 Char";
mso-style-link:;
font-family:;}
.MsoChpDefault
{font-size:10.0pt;}
/* Page Definitions */
@page WordSection1
{size:595.3pt 841.9pt;
margin:72.0pt 54.0pt 72.0pt 54.0pt;
layout-grid:15.6pt;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
ol
{margin-bottom:0cm;}
ul
{margin-bottom:0cm;}
-->
</style>
</head>
<body lang=ZH-CN link=blue vlink=purple style='text-justify-trim:punctuation'>
<div class=WordSection1 style='layout-grid:15.6pt'>
<p class=ab><a name="_Toc53320660"><span style='font-family:黑体'>程序</span><span
lang=EN-US>14-6&nbsp; linux/include/signal.h</span></a></p>
<div class=a align=center style='text-align:center'><span lang=EN-US>
<hr size=4 width="100%" align=center>
</span></div>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>1</span></u>
#ifndef <u><span style='color:blue'>_SIGNAL_H</span></u></span></p>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>2</span></u>
#define <u><span style='color:blue'>_SIGNAL_H</span></u></span></p>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>3</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>4</span></u>
#include &lt;sys/types.h&gt;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//
</span>类型头文件。定义了基本的系统数据类型。</p>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>5</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>6</span></u>
typedef int <u><span style='color:blue'>sig_atomic_t</span></u>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span>定义信号原子操作类型。</p>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>7</span></u>
typedef unsigned int <u><span style='color:blue'>sigset_t</span></u>;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<b><i>/* 32 bits */</i></b>&nbsp; // </span>定义信号集类型。</p>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>8</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp; <u><span style='color:blue'>9</span></u>
#define <u><span style='color:blue'>_NSIG</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // </span>定义信号种类<span
lang=EN-US> -- 32 </span>种。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>10</span></u>
#define <u><span style='color:blue'>NSIG</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>_NSIG</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// NSIG = _NSIG</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>11</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>以下这些是<span lang=EN-US>Linux
0.12</span>内核中定义的信号。其中包括了<span lang=EN-US>POSIX.1</span>要求的所有<span lang=EN-US>20</span>个信号。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>12</span></u>
#define <u><span style='color:blue'>SIGHUP</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Hang Up &nbsp;&nbsp;&nbsp;&nbsp;-- </span>挂断控制终端或进程。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>13</span></u>
#define <u><span style='color:blue'>SIGINT</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Interrupt &nbsp;&nbsp;-- </span>来自键盘的中断。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>14</span></u>
#define <u><span style='color:blue'>SIGQUIT</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Quit &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- </span>来自键盘的退出。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>15</span></u>
#define <u><span style='color:blue'>SIGILL</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Illeagle &nbsp;&nbsp;&nbsp;-- </span>非法指令。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>16</span></u>
#define <u><span style='color:blue'>SIGTRAP</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Trap&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- </span>跟踪断点。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>17</span></u>
#define <u><span style='color:blue'>SIGABRT</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Abort&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- </span>异常结束。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>18</span></u>
#define <u><span style='color:blue'>SIGIOT</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
6&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// IO Trap&nbsp;&nbsp;&nbsp;&nbsp; -- </span>同上。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>19</span></u>
#define <u><span style='color:blue'>SIGUNUSED</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Unused&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;-- </span>没有使用。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>20</span></u>
#define <u><span style='color:blue'>SIGFPE</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
8&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// FPE&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- </span>协处理器出错。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>21</span></u>
#define <u><span style='color:blue'>SIGKILL</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
9&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Kill&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- </span>强迫进程终止。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>22</span></u>
#define <u><span style='color:blue'>SIGUSR1</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
10&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// User1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- </span>用户信号<span lang=EN-US>1</span>,进程可使用。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>23</span></u>
#define <u><span style='color:blue'>SIGSEGV</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
11&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Segment Violation -- </span>无效内存引用。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>24</span></u>
#define <u><span style='color:blue'>SIGUSR2</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
12&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// User2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- </span>用户信号<span lang=EN-US>2</span>,进程可使用。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>25</span></u>
#define <u><span style='color:blue'>SIGPIPE</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
13&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Pipe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- </span>管道写出错,无读者。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>26</span></u>
#define <u><span style='color:blue'>SIGALRM</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
14&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Alarm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- </span>实时定时器报警。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>27</span></u>
#define <u><span style='color:blue'>SIGTERM</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
15&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Terminate&nbsp;&nbsp; -- </span>进程终止。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>28</span></u>
#define <u><span style='color:blue'>SIGSTKFLT</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
16&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Stack Fault -- </span>栈出错(协处理器)。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>29</span></u>
#define <u><span style='color:blue'>SIGCHLD</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
17&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Child &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- </span>子进程停止或被终止。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>30</span></u>
#define <u><span style='color:blue'>SIGCONT</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
18&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//
Continue &nbsp;&nbsp;&nbsp;-- </span>恢复进程继续执行。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>31</span></u>
#define <u><span style='color:blue'>SIGSTOP</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
19&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// Stop &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- </span>停止进程的执行。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>32</span></u>
#define <u><span style='color:blue'>SIGTSTP</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
20&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// TTY Stop &nbsp;&nbsp;&nbsp;-- tty</span>发出停止进程,可忽略。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>33</span></u>
#define <u><span style='color:blue'>SIGTTIN</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
21&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// TTY In &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-- </span>后台进程请求输入。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>34</span></u>
#define <u><span style='color:blue'>SIGTTOU</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
22&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// TTY Out&nbsp;&nbsp;&nbsp; &nbsp;-- </span>后台进程请求输出。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>35</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>36</span></u> <b><i>/*
Ok, I haven't implemented sigactions, but trying to keep headers POSIX */</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; /* OK</span>,我还没有实现<span
lang=EN-US>sigactions</span>的编制,但在头文件中仍希望遵守<span lang=EN-US>POSIX</span>标准<span
lang=EN-US> */</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>上面原注释已经过时,因为在<span
lang=EN-US>0.12</span>内核中已经实现了<span lang=EN-US>sigaction()</span>。下面是<span
lang=EN-US>sigaction</span>结构</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // sa_flags</span>标志字段可取的符号常数值。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>37</span></u>
#define <u><span style='color:blue'>SA_NOCLDSTOP</span></u>&nbsp;&nbsp;&nbsp; 1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span>当子进程处于停止状态,就不对<span lang=EN-US>SIGCHLD</span>处理。</p>
<p class=a><span lang=EN-US style='color:blue'>&nbsp;<u>38</u></span><span
lang=EN-US> #define <u><span style='color:blue'>SA_INTERRUPT</span></u>&nbsp;&nbsp;&nbsp;
0x20000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // </span>系统调用被信号中断后不重新启动系统调用。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>39</span></u>
#define <u><span style='color:blue'>SA_NOMASK</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0x40000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // </span>不阻止在指定的信号处理程序中再收到该信号。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>40</span></u>
#define <u><span style='color:blue'>SA_ONESHOT</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0x80000000&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // </span>信号句柄一旦被调用过就恢复到默认处理句柄。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>41</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>以下常量用于<span
lang=EN-US>sigprocmask(how, )-- </span>改变阻塞信号集<span lang=EN-US>(</span>屏蔽码<span
lang=EN-US>)</span>。用于改变该函数的行为。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>42</span></u>
#define <u><span style='color:blue'>SIG_BLOCK</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
0&nbsp; <b><i>/* for blocking signals */</i></b>&nbsp;&nbsp; // </span>在阻塞信号集中加上给定信号。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>43</span></u>
#define <u><span style='color:blue'>SIG_UNBLOCK</span></u>&nbsp;&nbsp;&nbsp;&nbsp;
1&nbsp; <b><i>/* for unblocking signals */</i></b> // </span>从阻塞信号集中删除指定信号。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>44</span></u>
#define <u><span style='color:blue'>SIG_SETMASK</span></u>&nbsp;&nbsp;&nbsp;&nbsp;
2&nbsp; <b><i>/* for setting the signal mask */</i></b>&nbsp;&nbsp; // </span>设置阻塞信号集。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>45</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>以下两个常数符号都表示指向无返回值的函数指针,且都有一个<span
lang=EN-US>int</span>整型参数。这两个指针</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>值是逻辑上讲实际上不可能出现的函数地址值。可作为下面<span
lang=EN-US>signal</span>函数的第二个参数。用</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>于告知内核,让内核处理信号或忽略对信号的处理。使用方法参见<span
lang=EN-US> kernel/signal.c</span>程序,</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><span lang=EN-US>94--96</span>行。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>46</span></u>
#define <u><span style='color:blue'>SIG_DFL</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
((void (*)(int))0)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b><i>/* default signal
handling */</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span>默认信号处理程序(信号句柄)。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>47</span></u>
#define <u><span style='color:blue'>SIG_IGN</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
((void (*)(int))1)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b><i>/* ignore signal */</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span>忽略信号的处理程序。</p>
<p class=a><span lang=EN-US style='color:blue'>&nbsp;<u>48</u></span><span
lang=EN-US> #define <u><span style='color:blue'>SIG_ERR</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
((void (*)(int))-1)&nbsp;&nbsp;&nbsp;&nbsp; <b><i>/* error return from signal
*/</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
// </span>信号处理返回错误。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>49</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>下面定义初始操作设置<span
lang=EN-US>sigaction</span>结构信号屏蔽码的宏。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>50</span></u>
#ifdef notdef</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>51</span></u>
#define <u><span style='color:blue'>sigemptyset</span></u>(mask) ((*(mask) =
0), 1)&nbsp;&nbsp;&nbsp; // </span><span lang=EN-US>mask</span>清零。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>52</span></u>
#define <u><span style='color:blue'>sigfillset</span></u>(mask) ((*(mask) =
~0), 1)&nbsp;&nbsp;&nbsp; // </span><span lang=EN-US>mask</span>所有比特位置位。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>53</span></u>
#endif</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>54</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>下面是<span lang=EN-US>sigaction</span>的数据结构。</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // sa_handler</span>是对应某信号指定要采取的行动。可以用上面的<span
lang=EN-US>SIG_DFL</span>,或<span lang=EN-US>SIG_IGN</span>来忽略该</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>信号,也可以是指向处理该信号函数的一个指针。</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // sa_mask</span>给出了对信号的屏蔽码,在信号程序执行时将阻塞对这些信号的处理。</p>
<p class=a style='text-indent:20.0pt'><span lang=EN-US>// sa_flags</span>指定改变信号处理过程的信号集。它是由<span
lang=EN-US>37-40</span>行的位标志定义的。</p>
<p class=a style='text-indent:20.0pt'><span lang=EN-US>// sa_restorer</span>是恢复函数指针,由函数库<span
lang=EN-US>Libc</span>提供,用于清理用户态堆栈。参见<span lang=EN-US>signal.c</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>另外,引起触发信号处理的信号也将被阻塞,除非使用了<span
lang=EN-US>SA_NOMASK</span>标志。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>55</span></u>
struct <u><span style='color:blue'>sigaction</span></u> {</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>56</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
void (*sa_handler)(int);</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>57</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<u><span style='color:blue'>sigset_t</span></u> sa_mask;</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>58</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
int sa_flags;</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>59</span></u>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
void (*sa_restorer)(void);</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>60</span></u> };</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>61</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>下面<span lang=EN-US>signal</span>函数用于是为信号<span
lang=EN-US>_sig</span>安装一新的信号处理程序(信号句柄),与<span lang=EN-US>sigaction()</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>类似。该函数含有两个参数:指定需要捕获的信号<span
lang=EN-US>_sig</span>;具有一个参数且无返回值的函数指针</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // _func</span>。该函数返回值也是具有一个<span
lang=EN-US>int</span>参数(最后一个<span lang=EN-US>(int)</span>)且无返回值的函数指针,它是</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>处理该信号的原处理句柄。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>62</span></u>
void (*signal(int _sig, void (*_func)(int)))(int);</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>下面两函数用于发送信号。<span
lang=EN-US>kill() </span>用于向任何进程或进程组发送信号。<span lang=EN-US>raise()</span>用于向当前进</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>程自身发送信号。其作用等价于<span
lang=EN-US>kill(getpid(),sig)</span>。参见<span lang=EN-US>kernel/exit.c</span><span
lang=EN-US>60</span>行。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>63</span></u> int
<u><span style='color:blue'>raise</span></u>(int sig);</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>64</span></u> int
<u><span style='color:blue'>kill</span></u>(<u><span style='color:blue'>pid_t</span></u>
pid, int sig);</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>在进程的任务结构中,除有一个以比特位表示当前进程待处理的<span
lang=EN-US>32</span>位信号字段<span lang=EN-US>signal</span>以外,</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>还有一个同样以比特位表示的用于屏蔽进程当前阻塞信号集(屏蔽信号集)的字段<span
lang=EN-US>blocked</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>也是<span lang=EN-US>32</span>位,每个比特代表一个对应的阻塞信号。修改进程的屏蔽信号集可以阻塞或解除阻塞</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>所指定的信号。 以下五个函数就是用于操作进程屏蔽信号集,虽然简单实现起来很简单,但</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>本版本内核中还未实现。</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>函数<span lang=EN-US>sigaddset()
</span><span lang=EN-US>sigdelset() </span>用于对信号集中的信号进行增、删修改。 <span
lang=EN-US>sigaddset()</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>于向<span lang=EN-US>mask</span>指向的信号集中增加指定的信号<span
lang=EN-US>signo</span><span lang=EN-US>sigdelset</span>则反之。函数<span
lang=EN-US>sigemptyset()</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // sigfillset() </span>用于初始化进程屏蔽信号集。
每个程序在使用信号集前,都需要使用这两个函</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>数之一对屏蔽信号集进行初始化。 <span
lang=EN-US>sigemptyset()</span>用于清空屏蔽的所有信号,也即响应所有的</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>信号。<span lang=EN-US>sigfillset()</span>向信号集中置入所有信号,也即屏蔽所有信号。当然
<span lang=EN-US>SIGINT</span><span lang=EN-US>SIGSTOP</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>是不能被屏蔽的。</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // sigismember()</span>用于测试一个指定信号是否在信号集中(<span
lang=EN-US>1 - </span>是,<span lang=EN-US>0 - </span>不是,<span lang=EN-US>-1 - </span>出错)。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>65</span></u> int
<u><span style='color:blue'>sigaddset</span></u>(<u><span style='color:blue'>sigset_t</span></u>
*mask, int signo);</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>66</span></u> int
<u><span style='color:blue'>sigdelset</span></u>(<u><span style='color:blue'>sigset_t</span></u>
*mask, int signo);</span></p>
<p class=a><span lang=EN-US style='color:blue'>&nbsp;<u>67</u></span><span
lang=EN-US> int <u><span style='color:blue'>sigemptyset</span></u>(<u><span
style='color:blue'>sigset_t</span></u> *mask);</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>68</span></u> int
<u><span style='color:blue'>sigfillset</span></u>(<u><span style='color:blue'>sigset_t</span></u>
*mask);</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>69</span></u> int
<u><span style='color:blue'>sigismember</span></u>(<u><span style='color:blue'>sigset_t</span></u>
*mask, int signo); <b><i>/* 1 - is, 0 - not, -1 error */</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span><span lang=EN-US>set</span>中的信号进行检测,看是否有挂起的信号。在<span
lang=EN-US>set</span>中返回进程中当前被阻塞的信号集。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>70</span></u> int
<u><span style='color:blue'>sigpending</span></u>(<u><span style='color:blue'>sigset_t</span></u>
*set);</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>下面函数用于改变进程目前被阻塞的信号集(信号屏蔽码)。若<span
lang=EN-US>oldset</span>不是<span lang=EN-US>NULL</span>,则通过其</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>返回进程当前屏蔽信号集。若<span
lang=EN-US>set</span>指针不是<span lang=EN-US>NULL</span>,则根据<span lang=EN-US>how</span><span
lang=EN-US>41-43</span>行)指示修改进程屏蔽</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>信号集。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>71</span></u> int
<u><span style='color:blue'>sigprocmask</span></u>(int how, <u><span
style='color:blue'>sigset_t</span></u> *set, <u><span style='color:blue'>sigset_t</span></u>
*oldset);</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>下面函数用<span lang=EN-US>
sigmask </span>临时替换进程的信号屏蔽码<span lang=EN-US>,</span>然后暂停该进程直到收到一个信号。若捕捉</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>到某一信号并从该信号处理程序中返回,则该函数也返回,并且信号屏蔽码会恢复到调用调用</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>前的值。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>72</span></u> int
<u><span style='color:blue'>sigsuspend</span></u>(<u><span style='color:blue'>sigset_t</span></u>
*sigmask);</span></p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // sigaction() </span>函数用于改变进程在收到指定信号时所采取的行动,即改变信号的处理句柄能。</p>
<p class=a><span lang=EN-US>&nbsp;&nbsp;&nbsp; // </span>参见对<span lang=EN-US>kernel/signal.c</span>程序的说明。</p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>73</span></u> int
<u><span style='color:blue'>sigaction</span></u>(int sig, struct <u><span
style='color:blue'>sigaction</span></u> *act, struct <u><span style='color:
blue'>sigaction</span></u> *oldact);</span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>74</span></u> </span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>75</span></u>
#endif <b><i>/* _SIGNAL_H */</i></b></span></p>
<p class=a><span lang=EN-US>&nbsp;<u><span style='color:blue'>76</span></u> </span></p>
<div class=a align=center style='text-align:center'><span lang=EN-US>
<hr size=4 width="100%" align=center>
</span></div>
<p class=MsoNormal><span lang=EN-US>&nbsp;</span></p>
</div>
</body>
</html>