锘??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲av伊人久久综合密臀性色,性欧美大战久久久久久久久,久久AV高清无码http://www.shnenglu.com/newplan/category/5224.html闃垮熀綾沖痙鍦ㄦ礂婢℃檪鐧肩従嫻姏鍘熺悊錛岄珮鑸堝緱渚嗕笉鍙?qiáng)绌裤問(wèn)瑜插瓙锛岃窇鍒拌銌?wèn)澶у枈錛欵ureka錛堟垜鎵懼埌浜?jiǎn)锛?jí)銆?/description>zh-cnMon, 19 May 2008 13:40:49 GMTMon, 19 May 2008 13:40:49 GMT60浜斾釜鍝插瀹剁嚎紼嬪疄鐜?/title><link>http://www.shnenglu.com/newplan/archive/2008/01/04/40374.html</link><dc:creator>灞辨硥寮歡</dc:creator><author>灞辨硥寮歡</author><pubDate>Thu, 03 Jan 2008 16:14:00 GMT</pubDate><guid>http://www.shnenglu.com/newplan/archive/2008/01/04/40374.html</guid><wfw:comment>http://www.shnenglu.com/newplan/comments/40374.html</wfw:comment><comments>http://www.shnenglu.com/newplan/archive/2008/01/04/40374.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/newplan/comments/commentRss/40374.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/newplan/services/trackbacks/40374.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include </span><span style="color: #000000;">"</span><span style="color: #000000;">apue.h</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>#include </span><span style="color: #000000;">"</span><span style="color: #000000;">semaphore.h</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>#include </span><span style="color: #000000;">"</span><span style="color: #000000;">pthread.h</span><span style="color: #000000;">"</span><span style="color: #000000;"><br><br>#define N </span><span style="color: #000000;">5</span><span style="color: #000000;"><br>static </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> necs;<br>static sem_t  </span><span style="color: #000000;">*</span><span style="color: #000000;">forks;<br><br>void </span><span style="color: #000000;">*</span><span style="color: #000000;"><br>takeFork(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> i)<br>{<br></span><span style="color: #0000ff;">if</span><span style="color: #000000;">(i</span><span style="color: #000000;">==</span><span style="color: #000000;">N</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>    {<br>     sem_wait(</span><span style="color: #000000;">&</span><span style="color: #000000;">forks[</span><span style="color: #000000;">0</span><span style="color: #000000;">]);<br>     sem_wait(</span><span style="color: #000000;">&</span><span style="color: #000000;">forks[i]);<br>    }<br>   </span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>     {<br>     sem_wait(</span><span style="color: #000000;">&</span><span style="color: #000000;">forks[i]);<br>     sem_wait(</span><span style="color: #000000;">&</span><span style="color: #000000;">forks[i</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">]);<br>     }<br>}<br>void </span><span style="color: #000000;">*</span><span style="color: #000000;"><br>putFork(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> i)<br>{<br></span><span style="color: #0000ff;">if</span><span style="color: #000000;">(i</span><span style="color: #000000;">==</span><span style="color: #000000;">N</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>    {<br>     sem_post(</span><span style="color: #000000;">&</span><span style="color: #000000;">forks[</span><span style="color: #000000;">0</span><span style="color: #000000;">]);<br>     sem_post(</span><span style="color: #000000;">&</span><span style="color: #000000;">forks[i]);<br>    }<br></span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>    {<br>    sem_post(</span><span style="color: #000000;">&</span><span style="color: #000000;">forks[i]);<br>    sem_post(</span><span style="color: #000000;">&</span><span style="color: #000000;">forks[i</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">]);<br>   }<br>}<br>void <br>thinking(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> i,</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> necs)<br>{<br>    printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">pholosopher %d  is thinking\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,i);<br>    sleep(necs);<br><br>}<br>void<br>eating(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> i,</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> necs)<br>{<br>    printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">pholosopher %d  is eating\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,i);<br>    sleep(necs);<br>}<br>void </span><span style="color: #000000;">*</span><span style="color: #000000;"><br>philosopher(void </span><span style="color: #000000;">*</span><span style="color: #000000;">n)<br>{<br>    </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> i</span><span style="color: #000000;">=</span><span style="color: #000000;">(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> )n;<br>    </span><span style="color: #0000ff;">while</span><span style="color: #000000;">(</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>    {<br>     thinking(i,necs);<br>     takeFork(i);<br>     eating(i,necs);<br>     putFork(i);<br>    }<br>}<br></span><span style="color: #000000;">//============================</span><span style="color: #000000;">main </span><span style="color: #0000ff;">function</span><span style="color: #000000;"><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;"><br>main(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> argc,char </span><span style="color: #000000;">*</span><span style="color: #000000;">argv[])<br>{<br>   pthread_t tid;<br>  <br>   </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(argc</span><span style="color: #000000;">==</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>          necs</span><span style="color: #000000;">=</span><span style="color: #000000;">2</span><span style="color: #000000;">;<br>   </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(argc </span><span style="color: #000000;">==</span><span style="color: #000000;">2</span><span style="color: #000000;">)<br>          necs</span><span style="color: #000000;">=</span><span style="color: #000000;">atoi(argv[</span><span style="color: #000000;">1</span><span style="color: #000000;">]);<br>   </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> return </span><span style="color: #000000;">1</span><span style="color: #000000;">;<br>  <br>   forks</span><span style="color: #000000;">=</span><span style="color: #000000;">(sem_t</span><span style="color: #000000;">*</span><span style="color: #000000;">)malloc(N</span><span style="color: #000000;">*</span><span style="color: #000000;">sizeof(sem_t));<br>   <br>   </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> i;<br>   </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;  i</span><span style="color: #000000;"><</span><span style="color: #000000;">N;  i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>   sem_init(forks</span><span style="color: #000000;">+</span><span style="color: #000000;">i,</span><span style="color: #000000;">0</span><span style="color: #000000;">,</span><span style="color: #000000;">1</span><span style="color: #000000;">);<br><br>   </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> status;<br>   </span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;"><</span><span style="color: #000000;">N;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>    {<br>      status</span><span style="color: #000000;">=</span><span style="color: #000000;">pthread_create(</span><span style="color: #000000;">&</span><span style="color: #000000;">tid,</span><span style="color: #0000ff;">NULL</span><span style="color: #000000;">,philosopher,(void</span><span style="color: #000000;">*</span><span style="color: #000000;">)i);<br><br>      </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(status</span><span style="color: #000000;"><</span><span style="color: #000000;">0</span><span style="color: #000000;">)<br>      err_sys(</span><span style="color: #000000;">"</span><span style="color: #000000;">create error!</span><span style="color: #000000;">"</span><span style="color: #000000;">);  <br>    } <br>    pthread_join(tid ,</span><span style="color: #0000ff;">NULL</span><span style="color: #000000;">);<br>    return </span><span style="color: #000000;">0</span><span style="color: #000000;">;  <br>}<br></span></div> <br><img src ="http://www.shnenglu.com/newplan/aggbug/40374.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/newplan/" target="_blank">灞辨硥寮歡</a> 2008-01-04 00:14 <a href="http://www.shnenglu.com/newplan/archive/2008/01/04/40374.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>浜斾釜鍝插瀹惰繘紼嬪疄鐜?/title><link>http://www.shnenglu.com/newplan/archive/2008/01/04/40373.html</link><dc:creator>灞辨硥寮歡</dc:creator><author>灞辨硥寮歡</author><pubDate>Thu, 03 Jan 2008 16:13:00 GMT</pubDate><guid>http://www.shnenglu.com/newplan/archive/2008/01/04/40373.html</guid><wfw:comment>http://www.shnenglu.com/newplan/comments/40373.html</wfw:comment><comments>http://www.shnenglu.com/newplan/archive/2008/01/04/40373.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/newplan/comments/commentRss/40373.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/newplan/services/trackbacks/40373.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><!--<br><br>Code highlighting produced by Actipro CodeHighlighter (freeware)<br>http://www.CodeHighlighter.com/<br><br>--><span style="color: #000000;">#include </span><span style="color: #000000;">"</span><span style="color: #000000;">apue.h</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>#include </span><span style="color: #000000;">"</span><span style="color: #000000;">lock.h</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>#include </span><span style="color: #000000;">"</span><span style="color: #000000;">lock.c</span><span style="color: #000000;">"</span><span style="color: #000000;"><br><br></span><span style="color: #000000;">/*</span><span style="color: #000000;">define some important variable</span><span style="color: #000000;">*/</span><span style="color: #000000;"><br></span><span style="color: #000000;">/*=======================================*/</span><span style="color: #000000;"><br>pid_t  pid;<br><br>static char </span><span style="color: #000000;">*</span><span style="color: #000000;">forks[</span><span style="color: #000000;">5</span><span style="color: #000000;">]</span><span style="color: #000000;">=</span><span style="color: #000000;">{<br></span><span style="color: #000000;">"</span><span style="color: #000000;">fork0</span><span style="color: #000000;">"</span><span style="color: #000000;">, </span><span style="color: #000000;">"</span><span style="color: #000000;">fork1</span><span style="color: #000000;">"</span><span style="color: #000000;">, </span><span style="color: #000000;">"</span><span style="color: #000000;">fork2</span><span style="color: #000000;">"</span><span style="color: #000000;"> ,</span><span style="color: #000000;">"</span><span style="color: #000000;">fork3</span><span style="color: #000000;">"</span><span style="color: #000000;"> ,</span><span style="color: #000000;">"</span><span style="color: #000000;">fork4</span><span style="color: #000000;">"</span><span style="color: #000000;"><br>};<br><br>static </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> necs;<br><br>#define N </span><span style="color: #000000;">5</span><span style="color: #000000;"><br><br></span><span style="color: #000000;">/*======================================*/</span><span style="color: #000000;"><br>void takeFork(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> i)<br>{<br></span><span style="color: #0000ff;">if</span><span style="color: #000000;">(i</span><span style="color: #000000;">==</span><span style="color: #000000;">N</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>  {<br>     lock(forks[</span><span style="color: #000000;">0</span><span style="color: #000000;">]);<br>     lock(forks[i]);<br>  }<br></span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>{<br>lock(forks[i]);<br>lock(forks[i</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">]);<br>}<br>}<br><br><br>void putFork(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> i)<br>{<br>   </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(i</span><span style="color: #000000;">==</span><span style="color: #000000;">N</span><span style="color: #000000;">-</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>    {<br>    unlock(forks[</span><span style="color: #000000;">0</span><span style="color: #000000;">]);<br>    unlock(forks[i]);<br>    }<br>  </span><span style="color: #0000ff;">else</span><span style="color: #000000;"><br>   {<br>   unlock(forks[i]);<br>   unlock(forks[i</span><span style="color: #000000;">+</span><span style="color: #000000;">1</span><span style="color: #000000;">]);<br><br>   }<br>}<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;"><br>thinking(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> i,</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> necs){<br>printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">pholosopher %d is thinking\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,i);<br>return sleep(necs);<br>}<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;"> <br>eating(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> i,</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> necs)<br>{printf(</span><span style="color: #000000;">"</span><span style="color: #000000;">pholosopher %d is eating\n</span><span style="color: #000000;">"</span><span style="color: #000000;">,i);<br>return sleep(necs);<br>}<br>void philosopher(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> i)<br>{<br></span><span style="color: #0000ff;">while</span><span style="color: #000000;">(</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>{<br>thinking(i,necs);<br>takeFork(i);<br>eating(i,necs);<br>putFork(i);<br><br>}<br>}<br></span><span style="color: #0000ff;">int</span><span style="color: #000000;"><br> main(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> argc ,char </span><span style="color: #000000;">*</span><span style="color: #000000;">argv[])<br>{<br> </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(argc</span><span style="color: #000000;">=</span><span style="color: #000000;">1</span><span style="color: #000000;">)<br>      necs</span><span style="color: #000000;">=</span><span style="color: #000000;">2</span><span style="color: #000000;">;<br></span><span style="color: #0000ff;">else</span><span style="color: #000000;"> </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(argc</span><span style="color: #000000;">==</span><span style="color: #000000;">2</span><span style="color: #000000;">)<br>     necs</span><span style="color: #000000;">=</span><span style="color: #000000;">atoi(argv[</span><span style="color: #000000;">1</span><span style="color: #000000;">]);<br></span><span style="color: #0000ff;">else</span><span style="color: #000000;">  return </span><span style="color: #000000;">0</span><span style="color: #000000;">;<br> <br></span><span style="color: #0000ff;">int</span><span style="color: #000000;"> i;   <br></span><span style="color: #0000ff;">for</span><span style="color: #000000;">(i</span><span style="color: #000000;">=</span><span style="color: #000000;">0</span><span style="color: #000000;">;i</span><span style="color: #000000;"><</span><span style="color: #000000;">N;i</span><span style="color: #000000;">++</span><span style="color: #000000;">)<br>{<br> pid</span><span style="color: #000000;">=</span><span style="color: #000000;">fork();<br> </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(pid </span><span style="color: #000000;">==</span><span style="color: #000000;">0</span><span style="color: #000000;">)<br>     philosopher(i);<br>}<br>return </span><span style="color: #000000;">0</span><span style="color: #000000;">;<br>}<br></span></div> <br><img src ="http://www.shnenglu.com/newplan/aggbug/40373.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/newplan/" target="_blank">灞辨硥寮歡</a> 2008-01-04 00:13 <a href="http://www.shnenglu.com/newplan/archive/2008/01/04/40373.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>鍚屾鍐欎笌寮傛鍐欐枃浠跺疄鐜?/title><link>http://www.shnenglu.com/newplan/archive/2007/11/21/37099.html</link><dc:creator>灞辨硥寮歡</dc:creator><author>灞辨硥寮歡</author><pubDate>Wed, 21 Nov 2007 10:45:00 GMT</pubDate><guid>http://www.shnenglu.com/newplan/archive/2007/11/21/37099.html</guid><wfw:comment>http://www.shnenglu.com/newplan/comments/37099.html</wfw:comment><comments>http://www.shnenglu.com/newplan/archive/2007/11/21/37099.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.shnenglu.com/newplan/comments/commentRss/37099.html</wfw:commentRss><trackback:ping>http://www.shnenglu.com/newplan/services/trackbacks/37099.html</trackback:ping><description><![CDATA[<div style="border: 1px solid #cccccc; padding: 4px 5px 4px 4px; background-color: #eeeeee; font-size: 13px; width: 98%;"><span style="color: #008000;">/*<br> 07.11.20 浜庢搗闊?br>*/<br>#</span><span style="color: #008000;">include  "sys/times.h"<br>#include "apue.h"<br>#include "fcntl.h"</span><span style="color: #008000;"><br></span><span style="color: #000000;">clock_t </span><span style="color: #0000ff;">times</span><span style="color: #000000;">(struct tms </span><span style="color: #000000;">*</span><span style="color: #000000;">buf);<br><br>static void pr_times(clock_t real </span><span style="color: #000000;">,</span><span style="color: #000000;">struct tms </span><span style="color: #000000;">*</span><span style="color: #000000;">tmsstart</span><span style="color: #000000;">,</span><span style="color: #000000;"> struct tms </span><span style="color: #000000;">*</span><span style="color: #000000;">tmsend);<br><br></span><span style="color: #0000ff;">int</span><span style="color: #000000;"> main(</span><span style="color: #0000ff;">int</span><span style="color: #000000;"> argc</span><span style="color: #000000;">,</span><span style="color: #000000;"> char </span><span style="color: #000000;">*</span><span style="color: #000000;">argv[])<br>{<br>  struct tms tmsstart</span><span style="color: #000000;">,</span><span style="color: #000000;">tmsend;<br> <br>  clock_t  start</span><span style="color: #000000;">,</span><span style="color: #000000;">end;<br> <br>  off_t excursion;<br> <br>  </span><span style="color: #0000ff;">if</span><span style="color: #000000;">((excursion</span><span style="color: #000000;">=</span><span style="color: #000000;">lseek(</span><span style="color: #800000;">0</span><span style="color: #000000;">,</span><span style="color: #800000;">0</span><span style="color: #000000;">,</span><span style="color: #000000;">SEEK_END))</span><span style="color: #000000;">==-</span><span style="color: #800000;">1</span><span style="color: #000000;">)</span><span style="color: #0000ff;">printf</span><span style="color: #000000;">(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">can not seek!\n</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">);<br> <br>  char buf[excursion];<br> <br>  </span><span style="color: #000000;">/*</span><span style="color: #0000ff;">printf</span><span style="color: #000000;">(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">excutsion ==#%d\n</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">excursion);</span><span style="color: #000000;">*/</span><span style="color: #000000;"><br>  </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> outfile_fd;</span><span style="color: #000000;">/*</span><span style="color: #000000;">out file descrite tag </span><span style="color: #000000;">*/</span><span style="color: #000000;"><br> <br>  lseek(</span><span style="color: #800000;">0</span><span style="color: #000000;">,</span><span style="color: #800000;">0</span><span style="color: #000000;">,</span><span style="color: #000000;">SEEK_SET);</span><span style="color: #000000;">/*</span><span style="color: #000000;">it is very importent  to go back  to the beginning of input file</span><span style="color: #000000;">!*/</span><span style="color: #000000;"><br> <br>  </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #0000ff;">read</span><span style="color: #000000;">(</span><span style="color: #800000;">0</span><span style="color: #000000;">,</span><span style="color: #000000;">buf</span><span style="color: #000000;">,</span><span style="color: #000000;">excursion)</span><span style="color: #000000;">==</span><span style="color: #800000;">0</span><span style="color: #000000;">)</span><span style="color: #0000ff;">printf</span><span style="color: #000000;">(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">read OK!\n</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">);<br>  </span><span style="color: #000000;">/*</span><span style="color: #000000;"> buf[excursion]</span><span style="color: #000000;">=</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000; font-weight: bold;">\0</span><span style="color: #000000; font-weight: bold;">'</span><span style="color: #000000;">;</span><span style="color: #000000;">*/</span><span style="color: #000000;"><br>  </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(argc</span><span style="color: #000000;">==</span><span style="color: #800000;">3</span><span style="color: #000000;">  </span><span style="color: #000000;">&&</span><span style="color: #000000;">  strcmp(argv[</span><span style="color: #800000;">2</span><span style="color: #000000;">]</span><span style="color: #000000;">,</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">sync</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">)</span><span style="color: #000000;">==</span><span style="color: #800000;">0</span><span style="color: #000000;">)<br>      { </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(( outfile_fd</span><span style="color: #000000;">=</span><span style="color: #0000ff;">open</span><span style="color: #000000;">(argv[</span><span style="color: #800000;">1</span><span style="color: #000000;">]</span><span style="color: #000000;">,</span><span style="color: #000000;">O_RDWR</span><span style="color: #000000;">|</span><span style="color: #000000;">O_CREAT</span><span style="color: #000000;">|</span><span style="color: #000000;">O_SYNC</span><span style="color: #000000;">,</span><span style="color: #800000;">0666</span><span style="color: #000000;">))</span><span style="color: #000000;"><</span><span style="color: #800000;">0</span><span style="color: #000000;">)err_sys(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">creat error</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">);}<br>    </span><span style="color: #0000ff;">else</span><span style="color: #000000;"> </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(argc</span><span style="color: #000000;">==</span><span style="color: #800000;">2</span><span style="color: #000000;">)<br>       {</span><span style="color: #0000ff;">if</span><span style="color: #000000;"> (( outfile_fd</span><span style="color: #000000;">=</span><span style="color: #0000ff;">open</span><span style="color: #000000;">(argv[</span><span style="color: #800000;">1</span><span style="color: #000000;">]</span><span style="color: #000000;">,</span><span style="color: #000000;">O_RDWR</span><span style="color: #000000;">|</span><span style="color: #000000;">O_CREAT</span><span style="color: #000000;">,</span><span style="color: #800000;">0666</span><span style="color: #000000;">))</span><span style="color: #000000;"><</span><span style="color: #800000;">0</span><span style="color: #000000;">)err_sys(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">creat error</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">);}<br>    </span><span style="color: #0000ff;">else</span><span style="color: #000000;">{</span><span style="color: #0000ff;">printf</span><span style="color: #000000;">(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">para error!\n</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">);</span><span style="color: #0000ff;">exit</span><span style="color: #000000;">(</span><span style="color: #800000;">1</span><span style="color: #000000;">);}<br>    long size</span><span style="color: #000000;">=</span><span style="color: #800000;">1024</span><span style="color: #000000;">; <br>    fflush(stdin);<br>    </span><span style="color: #0000ff;">printf</span><span style="color: #000000;">(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">BUFFSIZE  USER CPU  SYSTEM CPU  REAL TIMES  CIRCLE TIMES\n</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">);<br>    </span><span style="color: #0000ff;">int</span><span style="color: #000000;">  n;<br>    </span><span style="color: #0000ff;">int</span><span style="color: #000000;"> t;<br>    char </span><span style="color: #000000;">*</span><span style="color: #000000;">p</span><span style="color: #000000;">=</span><span style="color: #000000;">buf;<br>    long  redo_count;</span><span style="color: #000000;">/*</span><span style="color: #000000;">re </span><span style="color: #0000ff;">do</span><span style="color: #000000;"> copy </span><span style="color: #0000ff;">times</span><span style="color: #000000;">*/</span><span style="color: #000000;"> <br><br>  </span><span style="color: #0000ff;">do</span><span style="color: #000000;">{ <br>      </span><span style="color: #0000ff;">if</span><span style="color: #000000;">((start</span><span style="color: #000000;">=</span><span style="color: #0000ff;">times</span><span style="color: #000000;">(</span><span style="color: #000000;">&</span><span style="color: #000000;">tmsstart))</span><span style="color: #000000;">==-</span><span style="color: #800000;">1</span><span style="color: #000000;">)err_sys(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">times error</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">);<br>      redo_count</span><span style="color: #000000;">=</span><span style="color: #800000;">0</span><span style="color: #000000;">;</span><span style="color: #000000;">/*</span><span style="color: #000000;">it is very </span><span style="color: #0000ff;">import</span><span style="color: #000000;"> to set the counter zero at every circle </span><span style="color: #000000;">*/</span><span style="color: #000000;"><br>      t</span><span style="color: #000000;">=</span><span style="color: #800000;">1</span><span style="color: #000000;">;</span><span style="color: #000000;">/*</span><span style="color: #000000;">it is </span><span style="color: #0000ff;">use</span><span style="color: #000000;"> in the inside </span><span style="color: #0000ff;">while</span><span style="color: #000000;"> </span><span style="color: #000000;">*/</span><span style="color: #000000;"><br>      </span><span style="color: #0000ff;">while</span><span style="color: #000000;">((n</span><span style="color: #000000;">=</span><span style="color: #0000ff;">write</span><span style="color: #000000;">(outfile_fd</span><span style="color: #000000;">,</span><span style="color: #000000;">p</span><span style="color: #000000;">,</span><span style="color: #000000;">size))</span><span style="color: #000000;">==</span><span style="color: #000000;">size)<br>              {   p</span><span style="color: #000000;">+=</span><span style="color: #000000;">size;</span><span style="color: #000000;">/*</span><span style="color: #000000;">the begin buf must increase every </span><span style="color: #0000ff;">time</span><span style="color: #000000;">*/</span><span style="color: #000000;"><br>                  redo_count</span><span style="color: #000000;">++</span><span style="color: #000000;">;</span><span style="color: #000000;">/*</span><span style="color: #000000;">count how many </span><span style="color: #0000ff;">times</span><span style="color: #000000;"> circle </span><span style="color: #0000ff;">do</span><span style="color: #000000;">*/</span><span style="color: #000000;"><br>                  t</span><span style="color: #000000;">=</span><span style="color: #000000;">size</span><span style="color: #000000;">*</span><span style="color: #000000;">redo_count;</span><span style="color: #000000;">/*</span><span style="color: #000000;">one tag to count how many charaters we have travered</span><span style="color: #000000;">*/</span><span style="color: #000000;"><br>                  </span><span style="color: #000000;">/*</span><span style="color: #000000;"> </span><span style="color: #0000ff;">printf</span><span style="color: #000000;">(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">excursion==%d  t==%d   excursion-t==%d  size==%d\n</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">excursion</span><span style="color: #000000;">,</span><span style="color: #000000;">t</span><span style="color: #000000;">,</span><span style="color: #000000;">excursion</span><span style="color: #000000;">-</span><span style="color: #000000;">t</span><span style="color: #000000;">,</span><span style="color: #000000;">size);</span><span style="color: #000000;">*/</span><span style="color: #000000;"><br>                  </span><span style="color: #0000ff;">if</span><span style="color: #000000;">((excursion</span><span style="color: #000000;">-</span><span style="color: #000000;">t)</span><span style="color: #000000;"><</span><span style="color: #000000;">size)break;<br>              }<br>      </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(excursion</span><span style="color: #000000;">-</span><span style="color: #000000;">t</span><span style="color: #000000;">></span><span style="color: #800000;">0</span><span style="color: #000000;">)<br>         </span><span style="color: #0000ff;">if</span><span style="color: #000000;">(</span><span style="color: #0000ff;">write</span><span style="color: #000000;">(outfile_fd</span><span style="color: #000000;">,</span><span style="color: #000000;">p</span><span style="color: #000000;">,</span><span style="color: #000000;">excursion</span><span style="color: #000000;">-</span><span style="color: #000000;">t)</span><span style="color: #000000;">!=</span><span style="color: #000000;">(excursion</span><span style="color: #000000;">-</span><span style="color: #000000;">t))err_sys(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">read error</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">);<br>      </span><span style="color: #0000ff;">if</span><span style="color: #000000;">((end</span><span style="color: #000000;">=</span><span style="color: #0000ff;">times</span><span style="color: #000000;">(</span><span style="color: #000000;">&</span><span style="color: #000000;">tmsend))</span><span style="color: #000000;">==-</span><span style="color: #800000;">1</span><span style="color: #000000;">)err_sys(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">times error</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">);<br>      </span><span style="color: #0000ff;">printf</span><span style="color: #000000;">(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">%7ld</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">size);<br>      pr_times(end</span><span style="color: #000000;">-</span><span style="color: #000000;">start</span><span style="color: #000000;">,&</span><span style="color: #000000;">tmsstart</span><span style="color: #000000;">,&</span><span style="color: #000000;">tmsend);<br>      </span><span style="color: #0000ff;">printf</span><span style="color: #000000;">(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">%7ld\n</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">redo_count);<br>      lseek(outfile_fd</span><span style="color: #000000;">,</span><span style="color: #800000;">0</span><span style="color: #000000;">,</span><span style="color: #000000;">SEEK_SET);</span><span style="color: #000000;">/*</span><span style="color: #000000;">let the outfile pointer go back to the beginning of outfile</span><span style="color: #000000;">!*/</span><span style="color: #000000;"><br>      p</span><span style="color: #000000;">=</span><span style="color: #000000;">buf;</span><span style="color: #000000;">/*</span><span style="color: #000000;">let p </span><span style="color: #0000ff;">return</span><span style="color: #000000;"> to the beginning of buf;</span><span style="color: #000000;">*/</span><span style="color: #000000;"><br>     </span><span style="color: #000000;">/*</span><span style="color: #000000;"> </span><span style="color: #0000ff;">printf</span><span style="color: #000000;">(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">size=%d  excursion=%d\n</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">size</span><span style="color: #000000;">,</span><span style="color: #000000;">excursion);</span><span style="color: #000000;">*/</span><span style="color: #000000;"><br>     } </span><span style="color: #0000ff;">while</span><span style="color: #000000;">((size</span><span style="color: #000000;">*=</span><span style="color: #800000;">2</span><span style="color: #000000;">)</span><span style="color: #000000;"><=</span><span style="color: #000000;">excursion);<br>  <br></span><span style="color: #0000ff;">return</span><span style="color: #000000;"> </span><span style="color: #800000;">0</span><span style="color: #000000;">;<br>}<br>static void<br>pr_times(clock_t real </span><span style="color: #000000;">,</span><span style="color: #000000;">struct tms </span><span style="color: #000000;">*</span><span style="color: #000000;">tmsstart</span><span style="color: #000000;">,</span><span style="color: #000000;">struct tms </span><span style="color: #000000;">*</span><span style="color: #000000;">tmsend)<br>{static long clktck</span><span style="color: #000000;">=</span><span style="color: #800000;">0</span><span style="color: #000000;">;<br></span><span style="color: #0000ff;">if</span><span style="color: #000000;">(clktck</span><span style="color: #000000;">==</span><span style="color: #800000;">0</span><span style="color: #000000;">)<br> </span><span style="color: #0000ff;">if</span><span style="color: #000000;">((clktck</span><span style="color: #000000;">=</span><span style="color: #000000;">sysconf(_SC_CLK_TCK))</span><span style="color: #000000;"><</span><span style="color: #800000;">0</span><span style="color: #000000;">)<br>    </span><span style="color: #0000ff;">printf</span><span style="color: #000000;">(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">sysconf error</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">);<br><br></span><span style="color: #0000ff;">printf</span><span style="color: #000000;">(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">   %2.5f</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">(tmsend</span><span style="color: #000000;">-></span><span style="color: #000000;">tms_utime</span><span style="color: #000000;">-</span><span style="color: #000000;">tmsstart</span><span style="color: #000000;">-></span><span style="color: #000000;">tms_utime)</span><span style="color: #000000;">/</span><span style="color: #000000;">(double)clktck);<br></span><span style="color: #0000ff;">printf</span><span style="color: #000000;">(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">   %2.5f</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">(tmsend</span><span style="color: #000000;">-></span><span style="color: #000000;">tms_stime</span><span style="color: #000000;">-</span><span style="color: #000000;">tmsstart</span><span style="color: #000000;">-></span><span style="color: #000000;">tms_stime)</span><span style="color: #000000;">/</span><span style="color: #000000;">(double)clktck);<br></span><span style="color: #0000ff;">printf</span><span style="color: #000000;">(</span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000; font-weight: bold;">     %2.5f    </span><span style="color: #000000; font-weight: bold;">"</span><span style="color: #000000;">,</span><span style="color: #000000;">real</span><span style="color: #000000;">/</span><span style="color: #000000;">(double)clktck);<br>} <br> </span></div> <br><img src ="http://www.shnenglu.com/newplan/aggbug/37099.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.shnenglu.com/newplan/" target="_blank">灞辨硥寮歡</a> 2007-11-21 18:45 <a href="http://www.shnenglu.com/newplan/archive/2007/11/21/37099.html#Feedback" target="_blank" style="text-decoration:none;">鍙戣〃璇勮</a></div>]]></description></item><item><title>unix_綆鍗晄hell瀹炵幇http://www.shnenglu.com/newplan/archive/2007/11/06/35991.html灞辨硥寮歡灞辨硥寮歡Tue, 06 Nov 2007 15:18:00 GMThttp://www.shnenglu.com/newplan/archive/2007/11/06/35991.htmlhttp://www.shnenglu.com/newplan/comments/35991.htmlhttp://www.shnenglu.com/newplan/archive/2007/11/06/35991.html#Feedback0http://www.shnenglu.com/newplan/comments/commentRss/35991.htmlhttp://www.shnenglu.com/newplan/services/trackbacks/35991.html#include "apue.h"
#include 
<sys/wait.h>
extern  char 
**environ;
static void sign_Int(
int signnal)
{printf(
"Be interrupted\n%%");}
static void sign_Quit(
int signnal)
{printf(
"quit\n%%");
}

int 
main(void)
{
   
    char 
*argv[20];
    pid_t pid;
    
int status;
    
if(signal(SIGINT,sign_Int)==SIG_ERR)
       err_sys(
"signal error\n");
    
if(signal(SIGQUIT,sign_Quit)==SIG_ERR)
         err_sys(
"signal error\n");
    printf(
"%%");
    
while (1)
    {        char buf[MAXLINE];
             
int index=0,i=0;
           
if(fgets(buf,MAXLINE,stdin)==NULL)
             break;  
        
while( buf[i] != '\0'&&buf[i]!='\n' )
        {
           
if(buf[i] != ' ' )
           {  
               argv[index]
= buf+i;
               index
++;
               
for(;buf[i]!= ' '&&buf[i]!='\n';i++);
               if(buf[i]=='\n')
               break;               
               buf[i]
='\0';
                i++;
                
while(buf[i]==' ') 
                       i++
           }  
        } 
        buf[i]
='\0';
        argv[index] = NULL;
        
if((pid = fork() ) < 0 ) 
           err_sys(
"fork error\n");
        
else if( pid == 0 )
        {
           execve(argv[
0],argv,environ);
           err_ret(
"coundn't execute:%s",argv[0]);           
           
exit(127);
          }
        
if(( pid = waitpid(pid,&status,0)) < 0)
           err_sys(
"waitpid error\n");
          printf(
"%%"); 
     }
     
exit(0);
}


]]>
亚洲人成伊人成综合网久久久| 亚洲精品乱码久久久久久久久久久久 | 狠狠色综合网站久久久久久久| 欧美一区二区精品久久| 久久免费视频6| 亚洲中文字幕无码久久2020| 久久被窝电影亚洲爽爽爽| 欧美无乱码久久久免费午夜一区二区三区中文字幕 | 精品久久久噜噜噜久久久| 国内精品久久久久久久亚洲 | 国产精品无码久久综合 | 久久久不卡国产精品一区二区| 大香伊人久久精品一区二区| 国产精品久久久久久久久| 亚洲精品成人网久久久久久| 久久99国产精一区二区三区| 久久久高清免费视频| 999久久久免费国产精品播放| 久久精品久久久久观看99水蜜桃| 成人精品一区二区久久| 久久精品国产亚洲AV无码娇色| 一日本道伊人久久综合影| 91精品国产综合久久四虎久久无码一级| 一级A毛片免费观看久久精品| 久久久青草久久久青草| 亚洲国产另类久久久精品| 亚洲国产精品无码久久青草 | 99久久婷婷国产综合亚洲| 狠狠色狠狠色综合久久| 欧美麻豆久久久久久中文| 2020最新久久久视精品爱| 国产精品久久久久久一区二区三区 | 久久亚洲中文字幕精品一区四| 精品久久久久久久| a级成人毛片久久| 人妻精品久久无码专区精东影业| 国产成人精品三上悠亚久久| 亚洲婷婷国产精品电影人久久| 久久天天躁狠狠躁夜夜av浪潮 | 欧美久久一区二区三区| 国内精品欧美久久精品|