⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000002.htm

📁 一份很好的linux入门资料
💻 HTM
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>注:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;以下文章转载自bbs.ee.nthu&nbsp;programming&nbsp;板精华区&nbsp;<BR>><I>&nbsp;=========================================================================&nbsp;&lt;&nbsp;</I><BR>&nbsp;<BR>发信人:&nbsp;<A HREF="mailto:czliao@csie.nctu">czliao@csie.nctu</A>&nbsp;(snOOPy),&nbsp;信区:&nbsp;programming&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;问一下UNIX&nbsp;programming&nbsp;的基本问题&nbsp;<BR>发信站:&nbsp;交大资工&nbsp;News&nbsp;Server&nbsp;(Mon&nbsp;Nov&nbsp;&nbsp;6&nbsp;00:15:30&nbsp;1995)&nbsp;<BR>转信站:&nbsp;star!news.ee.nthu!news.csie.nctu!czliao&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;底下有几个问题想请问一下懂UNIX&nbsp;programming&nbsp;的人&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;while&nbsp;(fgets(buf,&nbsp;MAXLINE,&nbsp;stdin)&nbsp;!=&nbsp;NULL)&nbsp;{&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf[strlen(buf)&nbsp;-&nbsp;1]&nbsp;=&nbsp;0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;replace&nbsp;newline&nbsp;with&nbsp;null&nbsp;*.&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(pid&nbsp;=&nbsp;fork())&nbsp;&lt;&nbsp;0)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;err_sys(&quot;fork&nbsp;error&quot;);&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(pid&nbsp;==&nbsp;0)&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;child&nbsp;*/&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;execlp(buf,&nbsp;buf,&nbsp;(char&nbsp;*)&nbsp;0);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;err_ret(&quot;couldn't&nbsp;execute:&nbsp;%s&quot;,&nbsp;buf);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(127);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*这是Advanced&nbsp;Programming&nbsp;in&nbsp;UNIX&nbsp;Environment&nbsp;中的一个&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;程式,我有点搞不懂的是,这其中所指的parent&nbsp;和&nbsp;child,&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;是不是由&nbsp;fork()所产生的&nbsp;process&nbsp;且其值等於0的都是&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;child&nbsp;process&nbsp;其值大於0的都是parent&nbsp;process&nbsp;?&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;另外照这个程式看来,似乎要等parent&nbsp;或&nbsp;child&nbsp;其中一个&nbsp;process&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;完全执行完,才会执行下一个&nbsp;process&nbsp;,这样一来,好像就没&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;有多工的情形了*/&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;parent&nbsp;*/&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(pid&nbsp;=&nbsp;waitpid(pid,&nbsp;&amp;status,&nbsp;0))&nbsp;&lt;&nbsp;0)&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;err_sys(&quot;waitpid&nbsp;error&quot;);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(&quot;%%&nbsp;&quot;);&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;<BR>&nbsp;<BR>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~&nbsp;<BR>发信人:&nbsp;<A HREF="mailto:letitbe.bbs@cis.nctu">letitbe.bbs@cis.nctu</A>&nbsp;(Let&nbsp;It&nbsp;Be),&nbsp;信区:&nbsp;programming&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;Re:&nbsp;问一下UNIX&nbsp;programming&nbsp;的基本问题&nbsp;<BR>发信站:&nbsp;交大资科_BBS&nbsp;(Mon&nbsp;Nov&nbsp;&nbsp;6&nbsp;01:44:35&nbsp;1995)&nbsp;<BR>转信站:&nbsp;star!news.ee.nthu!news.cis.nctu!cis_nctu&nbsp;<BR>&nbsp;<BR>It's&nbsp;a&nbsp;basic&nbsp;problem&nbsp;for&nbsp;fork(2V),&nbsp;<BR>I&nbsp;think&nbsp;you&nbsp;should&nbsp;`man&nbsp;2&nbsp;fork`&nbsp;first,&nbsp;<BR>then&nbsp;you&nbsp;will&nbsp;see:&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fork()&nbsp;creates&nbsp;a&nbsp;new&nbsp;process.&nbsp;&nbsp;The&nbsp;new&nbsp;process&nbsp;&nbsp;(child&nbsp;&nbsp;pro-&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cess)&nbsp;is&nbsp;an&nbsp;exact&nbsp;copy&nbsp;of&nbsp;the&nbsp;calling&nbsp;process&nbsp;except&nbsp;for&nbsp;the&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;following:&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;.......[cut].....&nbsp;<BR>&nbsp;<BR>Well,&nbsp;when&nbsp;child&nbsp;is&nbsp;running,&nbsp;his&nbsp;parent&nbsp;is&nbsp;also&nbsp;running,&nbsp;<BR>they&nbsp;just&nbsp;get&nbsp;a&nbsp;different&nbsp;pid&nbsp;=&nbsp;fork()&nbsp;value.&nbsp;So&nbsp;they&nbsp;<BR>will&nbsp;choose&nbsp;different&nbsp;way&nbsp;to&nbsp;continue&nbsp;running&nbsp;program...&nbsp;<BR>&nbsp;<BR>One&nbsp;will&nbsp;choose:&nbsp;if&nbsp;(pid&nbsp;==&nbsp;0)&nbsp;,&nbsp;it's&nbsp;child&nbsp;<BR>the&nbsp;other&nbsp;will&nbsp;choose:&nbsp;if&nbsp;(pid&nbsp;&gt;&nbsp;0),&nbsp;it's&nbsp;parent&nbsp;<BR>&nbsp;<BR>They&nbsp;run&nbsp;in&nbsp;the&nbsp;same&nbsp;time!&nbsp;<BR>(in&nbsp;your&nbsp;case,&nbsp;parent&nbsp;just&nbsp;wait&nbsp;wait&nbsp;wait&nbsp;wait&nbsp;child&nbsp;return&nbsp;value..&nbsp;<BR>&nbsp;it&nbsp;seems&nbsp;parent&nbsp;not&nbsp;work,&nbsp;but&nbsp;in&nbsp;fact,&nbsp;WAIT&nbsp;is&nbsp;also&nbsp;a&nbsp;job)&nbsp;<BR>&nbsp;<BR>Anyway,&nbsp;you&nbsp;should&nbsp;man&nbsp;fork&nbsp;to&nbsp;get&nbsp;some&nbsp;useful&nbsp;information&nbsp;first.&nbsp;<BR>&nbsp;<BR>PS:&nbsp;sorry,&nbsp;I&nbsp;can&nbsp;only&nbsp;read&nbsp;but&nbsp;can't&nbsp;write&nbsp;Chinese&nbsp;now...&nbsp;:~~&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;I&nbsp;can't&nbsp;find&nbsp;a&nbsp;good&nbsp;chinese&nbsp;keyin&nbsp;method&nbsp;for&nbsp;my&nbsp;CXterm&nbsp;<BR>&nbsp;<BR>--&nbsp;<BR>><I>----------------------------☆☆☆☆☆----------------------------&lt;&nbsp;</I><BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -