📄 4-3.htm
字号:
style='mso-bookmark:_Toc16587483'><span lang=EN-US style='font-size:9.0pt'>father</span></span><span
style='mso-bookmark:_Toc16587483'><span style='font-size:9.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'><o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span style='mso-tab-count:2'> </span><span
style='mso-spacerun:yes'> </span>printf("
father failed.\n");<span style='mso-tab-count:2'> </span>//
execl()</span></span><span style='mso-bookmark:_Toc16587483'><span
style='font-size:9.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'><o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span style='mso-tab-count:1'> </span><span
style='mso-spacerun:yes'> </span>}<o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span style='mso-tab-count:1'> </span><span
style='mso-spacerun:yes'> </span>else<o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span style='mso-tab-count:1'> </span><span
style='mso-spacerun:yes'> </span>{<o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span style='mso-tab-count:2'> </span><span
style='mso-spacerun:yes'> </span>close(fd[1]);<span
style='mso-tab-count:4'> </span>//
</span></span><span style='mso-bookmark:_Toc16587483'><span style='font-size:
9.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'><o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span style='mso-tab-count:2'> </span><span
style='mso-spacerun:yes'>
</span>close(STD_INPUT);<span style='mso-tab-count:3'> </span>//
</span></span><span style='mso-bookmark:_Toc16587483'><span style='font-size:
9.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'>0<o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span style='mso-tab-count:2'> </span><span
style='mso-spacerun:yes'> </span>dup(fd[0]);<span
style='mso-tab-count:4'> </span>//
</span></span><span style='mso-bookmark:_Toc16587483'><span style='font-size:
9.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'>0</span></span><span style='mso-bookmark:
_Toc16587483'><span style='font-size:9.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'><o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span style='mso-tab-count:2'> </span><span
style='mso-spacerun:yes'> </span>close(fd[0]);<span
style='mso-tab-count:4'> </span>//
</span></span><span style='mso-bookmark:_Toc16587483'><span style='font-size:
9.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'><o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span style='mso-tab-count:2'> </span><span
style='mso-spacerun:yes'>
</span>execl(process2,process2,0);<span style='mso-tab-count:1'> </span>//
</span></span><span style='mso-bookmark:_Toc16587483'><span style='font-size:
9.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'>child</span></span><span style='mso-bookmark:
_Toc16587483'><span style='font-size:9.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'><o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span style='mso-tab-count:2'> </span><span
style='mso-spacerun:yes'> </span><span
style='mso-spacerun:yes'> </span>printf("child
failed.\n");<span style='mso-tab-count:2'> </span>//
execl()</span></span><span style='mso-bookmark:_Toc16587483'><span
style='font-size:9.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'><o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span style='mso-tab-count:1'> </span><span
style='mso-spacerun:yes'> </span>}<o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span style='mso-tab-count:1'> </span><span
style='mso-spacerun:yes'> </span>exit(2);<span
style='mso-tab-count:6'> </span>//
</span></span><span style='mso-bookmark:_Toc16587483'><span style='font-size:
9.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'><o:p></o:p></span></span></p>
<p class=MsoNormal style='text-indent:27.0pt;mso-char-indent-count:3.0;
mso-char-indent-size:9pt'><span style='mso-bookmark:_Toc16587483'><span
lang=EN-US style='font-size:9.0pt'>}</span></span></p>
<p class=MsoNormal style='text-indent:21.0pt'><span style='mso-bookmark:_Toc16587483'><b
style='mso-bidi-font-weight:normal'><span style='font-family:楷体_GB2312;
mso-ascii-font-family:"Times New Roman"'>步骤</span></b></span><span
style='mso-bookmark:_Toc16587483'><b style='mso-bidi-font-weight:normal'><span
lang=EN-US style='mso-fareast-font-family:楷体_GB2312'>2</span></b></span><span
style='mso-bookmark:_Toc16587483'><b style='mso-bidi-font-weight:normal'><span
style='font-family:楷体_GB2312;mso-ascii-font-family:"Times New Roman"'>:</span></b></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>father.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></p>
<p class=MsoNormal style='text-indent:21.0pt'><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>GNOME</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><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>father.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></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt;font-family:黑体'><span
style='mso-spacerun:yes'> </span>清单4-6<span
style='mso-spacerun:yes'> </span>father.c<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-indent:22.5pt;mso-char-indent-count:2.5;
mso-char-indent-size:9pt'><span style='mso-bookmark:_Toc16587483'><span
lang=EN-US style='font-size:9.0pt;font-family:黑体'><span
style='mso-spacerun:yes'> </span></span></span><span style='mso-bookmark:
_Toc16587483'><span lang=EN-US style='font-size:9.0pt'>main()<o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span
style='mso-spacerun:yes'> </span>{<o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span
style='mso-spacerun:yes'>
</span>static char string[] = “Parent is using pipe write.” ;<o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span
style='mso-spacerun:yes'>
</span>int len;<o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span
style='mso-spacerun:yes'>
</span>len = sizeof(string) ;<o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span
style='mso-spacerun:yes'>
</span>write(l, string, len) ;<span style='mso-tab-count:3'> </span>/*
</span></span><span style='mso-bookmark:_Toc16587483'><span style='font-size:
9.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'>string</span></span><span style='mso-bookmark:
_Toc16587483'><span style='font-size:9.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'> */<o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span
style='mso-spacerun:yes'>
</span></span></span><span style='mso-bookmark:_Toc16587483'><span lang=FR
style='font-size:9.0pt;mso-ansi-language:FR'>printf(“parent, parent, parent \n
\n \n” ) ;<o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=FR
style='font-size:9.0pt;mso-ansi-language:FR'><span
style='mso-spacerun:yes'>
</span></span></span><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'>exit(0) ;<o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span
style='mso-spacerun:yes'> </span>}<o:p></o:p></span></span></p>
<p class=MsoNormal style='text-indent:21.0pt'><span style='mso-bookmark:_Toc16587483'><b
style='mso-bidi-font-weight:normal'><span style='font-family:楷体_GB2312;
mso-ascii-font-family:"Times New Roman"'>步骤</span></b></span><span
style='mso-bookmark:_Toc16587483'><b style='mso-bidi-font-weight:normal'><span
lang=EN-US style='mso-fareast-font-family:楷体_GB2312'>3</span></b></span><span
style='mso-bookmark:_Toc16587483'><b style='mso-bidi-font-weight:normal'><span
style='font-family:楷体_GB2312;mso-ascii-font-family:"Times New Roman"'>:</span></b></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>child.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></p>
<p class=MsoNormal style='text-indent:21.0pt'><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>GNOME</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><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>child.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></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt;font-family:黑体'><span
style='mso-spacerun:yes'> </span>清单4-7<span
style='mso-spacerun:yes'> </span>child.c<span style='color:red'><o:p></o:p></span></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt;font-family:黑体'><span
style='mso-spacerun:yes'> </span><span style='color:red'><span
style='mso-spacerun:yes'> </span></span></span></span><span
style='mso-bookmark:_Toc16587483'><span lang=EN-US style='font-size:9.0pt'>main()<o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span
style='mso-spacerun:yes'> </span>{<o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span
style='mso-spacerun:yes'>
</span>char output[30] ;<o:p></o:p></span></span></p>
<p class=MsoNormal><span style='mso-bookmark:_Toc16587483'><span lang=EN-US
style='font-size:9.0pt'><span
style='mso-spacerun:yes'>
</span>read (0, output, 30) ;<span style='mso-tab-count:3'> </span>/*
</span></span><span style='mso-bookmark:_T
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -