📄 4-2.htm
字号:
<o:entry new="18" old="17"/>
<o:entry new="19" old="18"/>
<o:entry new="20" old="19"/>
<o:entry new="21" old="20"/>
<o:entry new="22" old="21"/>
<o:entry new="23" old="22"/>
<o:entry new="24" old="23"/>
<o:entry new="25" old="24"/>
<o:entry new="26" old="0"/>
</o:regrouptable>
</o:shapelayout></xml><![endif]-->
</head>
<body lang=ZH-CN link=blue vlink=purple style='tab-interval:21.0pt;text-justify-trim:
punctuation'>
<div class=Section1 style='layout-grid:15.6pt'>
<p class=MsoNormal align=right style='text-align:right'><a name="_top"></a><b><span
style='font-size:26.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman";color:#993366'>实验</span></b><b><i
style='mso-bidi-font-style:normal'><span lang=EN-US style='font-size:55.0pt;
mso-bidi-font-size:12.0pt;color:#993366'>4</span></i><span lang=EN-US
style='color:#993366'><o:p></o:p></span></b></p>
<p class=MsoNormal align=right style='text-align:right;word-break:break-all'><!--[if gte vml 1]><v:shapetype
id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"
path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f">
<v:stroke joinstyle="miter"/>
<v:formulas>
<v:f eqn="if lineDrawn pixelLineWidth 0"/>
<v:f eqn="sum @0 1 0"/>
<v:f eqn="sum 0 0 @1"/>
<v:f eqn="prod @2 1 2"/>
<v:f eqn="prod @3 21600 pixelWidth"/>
<v:f eqn="prod @3 21600 pixelHeight"/>
<v:f eqn="sum @0 0 1"/>
<v:f eqn="prod @6 1 2"/>
<v:f eqn="prod @7 21600 pixelWidth"/>
<v:f eqn="sum @8 21600 0"/>
<v:f eqn="prod @7 21600 pixelHeight"/>
<v:f eqn="sum @10 21600 0"/>
</v:formulas>
<v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect"/>
<o:lock v:ext="edit" aspectratio="t"/>
</v:shapetype><v:shape id="_x0000_s1609" type="#_x0000_t75" style='position:absolute;
left:0;text-align:left;margin-left:0;margin-top:0;width:546.85pt;height:34.15pt;
z-index:-1;mso-wrap-edited:f;mso-position-horizontal:left;
mso-position-vertical:top;mso-position-vertical-relative:line' wrapcoords="-26 0 -26 21176 21600 21176 21600 0 -26 0"
o:allowoverlap="f">
<v:imagedata src="4-2.files/image001.jpg" o:title="image_bk"/>
<w:wrap type="square" anchorx="page"/>
</v:shape><![endif]--><![if !vml]><img width=729 height=46
src="4-2.files/image002.jpg" align=left hspace=12 v:shapes="_x0000_s1609"><![endif]><b><span
style='font-size:24.0pt;mso-bidi-font-size:12.0pt;font-family:黑体;mso-ascii-font-family:
"Times New Roman";color:navy'>并发与调度</span></b><b><span lang=EN-US
style='font-size:16.0pt;mso-bidi-font-size:12.0pt;mso-fareast-font-family:黑体;
color:navy'><span style='mso-spacerun:yes'> </span></span></b></p>
<p class=MsoNormal><span lang=EN-US> </span></p>
<p class=MsoNormal><span lang=EN-US> </span></p>
<p class=MsoNormal><span lang=EN-US> </span></p>
<p class=MsoNormal><span lang=EN-US> </span></p>
<h2><a name="_Toc16587483"></a><a name="_Toc45704112"></a><a name="_Toc37925083"><span
style='mso-bookmark:_Toc45704112'><span style='mso-bookmark:_Toc16587483'><span
lang=EN-US>4.2<span style='mso-spacerun:yes'> </span>Windows 2000线程间的通讯</span></span></span></a><span
style='mso-bookmark:_Toc16587483'></span></h2>
<p class=MsoNormal align=center style='text-align:center'><span
style='mso-bookmark:_Toc16587483'><span lang=EN-US><span
style='mso-spacerun:yes'> </span>(</span></span><span style='mso-bookmark:
_Toc16587483'><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>实验估计时间:</span><span lang=EN-US>120</span></span><span
style='mso-bookmark:_Toc16587483'><span style='font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>分钟</span><span
lang=EN-US>)</span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US> </span></span></p>
<p class=MsoNormal style='margin-left:21.0pt;text-indent:-21.0pt;mso-list:l0 level1 lfo2;
tab-stops:list 21.0pt'><span style='mso-bookmark:_Toc16587483'><![if !supportLists]><span
lang=EN-US style='font-family:Wingdings;mso-fareast-font-family:Wingdings;
mso-bidi-font-family:Wingdings;mso-bidi-font-weight:bold'><span
style='mso-list:Ignore'>Ø<span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]></span><a href="#_背景知识"><span style='mso-bookmark:
_Toc16587483'><b><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>背景知识</span></b></span><span
style='mso-bookmark:_Toc16587483'></span></a><span style='mso-bookmark:_Toc16587483'><b><span
lang=EN-US><o:p></o:p></span></b></span></p>
<p class=MsoNormal style='margin-left:21.0pt;text-indent:-21.0pt;mso-list:l0 level1 lfo2;
tab-stops:list 21.0pt'><span style='mso-bookmark:_Toc16587483'><![if !supportLists]><span
lang=EN-US style='font-family:Wingdings;mso-fareast-font-family:Wingdings;
mso-bidi-font-family:Wingdings;mso-bidi-font-weight:bold'><span
style='mso-list:Ignore'>Ø<span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]></span><a href="#_实验目的"><span style='mso-bookmark:
_Toc16587483'><b><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>实验目的</span></b></span><span
style='mso-bookmark:_Toc16587483'></span></a><span style='mso-bookmark:_Toc16587483'><b><span
lang=EN-US><o:p></o:p></span></b></span></p>
<p class=MsoNormal style='margin-left:21.0pt;text-indent:-21.0pt;mso-list:l0 level1 lfo2;
tab-stops:list 21.0pt'><span style='mso-bookmark:_Toc16587483'><![if !supportLists]><span
lang=EN-US style='font-family:Wingdings;mso-fareast-font-family:Wingdings;
mso-bidi-font-family:Wingdings;mso-bidi-font-weight:bold'><span
style='mso-list:Ignore'>Ø<span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]></span><a href="#_工具/准备工作"><span
style='mso-bookmark:_Toc16587483'><b><span style='font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>工具</span><span
lang=EN-US>/</span></b></span><span style='mso-bookmark:_Toc16587483'><b><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>准备工作</span></b></span><span style='mso-bookmark:_Toc16587483'></span></a><span
style='mso-bookmark:_Toc16587483'><b><span lang=EN-US><o:p></o:p></span></b></span></p>
<p class=MsoNormal style='margin-left:21.0pt;text-indent:-21.0pt;mso-list:l0 level1 lfo2;
tab-stops:list 21.0pt'><span style='mso-bookmark:_Toc16587483'><![if !supportLists]><span
lang=EN-US style='font-family:Wingdings;mso-fareast-font-family:Wingdings;
mso-bidi-font-family:Wingdings;mso-bidi-font-weight:bold'><span
style='mso-list:Ignore'>Ø<span style='font:7.0pt "Times New Roman"'>
</span></span></span><![endif]></span><a href="#_实验内容"><span style='mso-bookmark:
_Toc16587483'><b><span style='font-family:宋体;mso-ascii-font-family:"Times New Roman";
mso-hansi-font-family:"Times New Roman"'>实验内容与步骤</span></b></span><span
style='mso-bookmark:_Toc16587483'></span></a><span style='mso-bookmark:_Toc16587483'><b><span
lang=EN-US><o:p></o:p></span></b></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US> </span></span></p>
<h3><span style='mso-bookmark:_Toc16587483'><a name="_Toc37925084"></a><a
name="_Toc45704113"></a><a name="_背景知识"></a><span style='mso-bookmark:_Toc37925084'><span
style='mso-bookmark:_Toc45704113'>背景知识</span></span></span></h3>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US> </span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'></span><a
href="#_1._文件对象"><span style='mso-bookmark:_Toc16587483'><span lang=EN-US>1. </span></span><span
style='mso-bookmark:_Toc16587483'><span style='font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>文件对象</span></span><span
style='mso-bookmark:_Toc16587483'></span></a><span style='mso-bookmark:_Toc16587483'></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'></span><a
href="#_2._文件映射对象"><span style='mso-bookmark:_Toc16587483'><span lang=EN-US>2. </span></span><span
style='mso-bookmark:_Toc16587483'><span style='font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>文件映射对象</span></span><span
style='mso-bookmark:_Toc16587483'></span></a><span style='mso-bookmark:_Toc16587483'></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US><o:p> </o:p></span></span></p>
<p class=MsoNormal style='text-indent:21.0pt'><span style='mso-bookmark:_Toc16587483'><span
lang=EN-US>Windows 2000</span></span><span style='mso-bookmark:_Toc16587483'><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>提供的线程间通讯类内核对象允许同一进程或跨进程的线程之间互相发送信息,包括文件、文件映射、邮件位和命名管道等,其中最常用的是文件和文件映射。这类对象允许一个线程很容易地向同一进程或其他进程中的另一线程发送信息。</span></span></p>
<h4><span style='mso-bookmark:_Toc16587483'><a name="_1._文件对象"></a><span
lang=EN-US><span style='mso-spacerun:yes'> </span>1. 文件对象<o:p></o:p></span></span></h4>
<p class=MsoNormal style='text-indent:21.0pt;mso-char-indent-size:10.5pt'><span
style='mso-bookmark:_Toc16587483'><span style='font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>文件对象是人们所熟悉的永久存储的传统元素。将一个文件看作是内核对象可使开发人员获得比标准</span><span
lang=EN-US>C++ </span></span><span style='mso-bookmark:_Toc16587483'><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>文件操作更为强大的功能。</span><span lang=EN-US><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-indent:21.0pt;mso-char-indent-size:10.5pt'><span
style='mso-bookmark:_Toc16587483'><span style='font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>内核允许开发人员在系统设备或网络上创建代表永久存储数据块的文件对象。这些文件对象是对永久存储数据的低级访问者;用</span><span
lang=EN-US>C++ </span></span><span style='mso-bookmark:_Toc16587483'><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>运行库或其他方法打开的所有文件最终都要变成对</span><span lang=EN-US>CreateFile()
API</span></span><span style='mso-bookmark:_Toc16587483'><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>的调用。</span></span></p>
<p class=MsoNormal style='text-indent:21.0pt'><span style='mso-bookmark:_Toc16587483'><span
lang=EN-US>CreateFile() </span></span><span style='mso-bookmark:_Toc16587483'><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>函数分配一个内核对象来代表一个永久的文件。当在磁盘上创建一个新文件或当打开一个已经存在的文件时,就调用这个</span><span
lang=EN-US>API</span></span><span style='mso-bookmark:_Toc16587483'><span
style='font-family:宋体;mso-ascii-font-family:"Times New Roman";mso-hansi-font-family:
"Times New Roman"'>,其参数总结见表</span><span lang=EN-US>4-2</span></span><span
style='mso-bookmark:_Toc16587483'><span style='font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>。</span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US> </span></span></p>
<p class=a><span style='mso-bookmark:_Toc16587483'>表<span lang=EN-US>4-2<span
style='mso-spacerun:yes'> </span>CreateFile() API的参数</span></span></p>
<div align=center>
<table class=MsoNormalTable border=1 cellspacing=0 cellpadding=0
style='margin-left:5.35pt;border-collapse:collapse;border:none;mso-border-top-alt:
solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext 1.5pt;
mso-padding-alt:0cm 5.4pt 0cm 5.4pt'>
<tr style='mso-yfti-irow:0;height:17.0pt'>
<td width=181 style='width:135.8pt;border-top:solid windowtext 1.5pt;
border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
mso-border-top-alt:solid windowtext 1.5pt;mso-border-bottom-alt:solid windowtext .5pt;
mso-border-right-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;
height:17.0pt'>
<p class=MsoNormal align=center style='text-align:center'><span
style='mso-bookmark:_Toc16587483'><span style='font-size:9.0pt;mso-bidi-font-size:
12.0pt;font-family:黑体;mso-ascii-font-family:"Times New Roman"'>参数名</span></span><span
style='mso-bookmark:_Toc16587483'><span lang=EN-US style='font-size:9.0pt;
mso-bidi-font-size:12.0pt;mso-fareast-font-family:黑体'><o:p></o:p></span></span></p>
</td>
<span style='mso-bookmark:_Toc16587483'></span>
<td width=329 style='width:246.8pt;border-top:solid windowtext 1.5pt;
border-left:none;border-bottom:solid windowtext 1.0pt;border-right:none;
mso-border-left-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext 1.5pt;
mso-border-left-alt:solid windowtext .5pt;mso-border-bottom-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt;height:17.0pt'>
<p class=MsoNormal align=center style='text-align:center'><span
style='mso-bookmark:_Toc16587483'><span style='font-size:9.0pt;mso-bidi-font-size:
12.0pt;font-family:黑体;mso-ascii-font-family:"Times New Roman"'>使用目的</span></span><span
style='mso-bookmark:_Toc16587483'><span lang=EN-US style='font-size:9.0pt;
mso-bidi-font-size:12.0pt;mso-fareast-font-family:黑体'><o:p></o:p></span></span></p>
</td>
<span style='mso-bookmark:_Toc16587483'></span>
</tr>
<tr style='mso-yfti-irow:1;height:17.0pt'>
<td width=181 style='width:135.8pt;border-top:none;border-left:none;
border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;
mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;
padding:0cm 5.4pt 0cm 5.4pt;height:17.0pt'>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt;mso-bidi-font-size:12.0pt'><span
style='mso-spacerun:yes'> </span>LPCTSTR lpFileName<o:p></o:p></span></span></p>
</td>
<span style='mso-bookmark:_Toc16587483'></span>
<td width=329 style='width:246.8pt;border:none;border-bottom:solid windowtext 1.0pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-left-alt:solid windowtext .5pt;
mso-border-bottom-alt:solid windowtext .5pt;padding:0cm 5.4pt 0cm 5.4pt;
height:17.0pt'>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span
style='font-size:9.0pt;mso-bidi-font-size:12.0pt;font-family:宋体;mso-ascii-font-family:
"Times New Roman";mso-hansi-font-family:"Times New Roman"'>要打开或创建的文件名</span></span><span
style='mso-bookmark:_Toc16587483'><span lang=EN-US style='font-size:9.0pt;
mso-bidi-font-size:12.0pt'><o:p></o:p></span></span></p>
</td>
<span style='mso-bookmark:_Toc16587483'></span>
</tr>
<tr style='mso-yfti-irow:2;height:17.0pt'>
<td width=181 style='width:135.8pt;border-top:none;border-left:none;
border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;
mso-border-top-alt:solid windowtext .5pt;mso-border-top-alt:solid windowtext .5pt;
mso-border-bottom-alt:solid windowtext .5pt;mso-border-right-alt:solid windowtext .5pt;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -