在本節的最後,給出乙個多程序程式設計的綜合例項,程式會建立兩個程序,在父程序和子程序之間通過管道傳遞資料,父程序向子程序傳送字串
exit
表示讓子程序退出,並且等待子程序返回;子程序查詢管道,當從管道讀出字串
exit
的時候結束。
例項8-7
程序程式設計例項
1 // process_demo.c
2 #include
3 #include
4 #include
5 #include
6 #include
7 8 int main()
9 18
19pid = fork();
20if (-1==pid) else if (0==pid)
33}34} else
42 43 return 0;
44 }
程式第14~
17行建立管道,並檢查管道建立是否成功。第
19行呼叫
fork()
函式建立程序。第23~
32行是子程序的**,子程序首先關閉管道寫操作,然後進入乙個死迴圈,不斷從管道讀取資料,如果有資料會檢查資料內容,發現字串
exit
就呼叫exit()
函式結束程序。第35~
40行是父程序的**,首先是關閉管道讀操作,然後等待
2秒,向管道寫入字串
exit
,最後關閉管道寫操作。程式執行結果如下:
wait command from parent!
parent process! child process id: 8013
send command to child process.
recv command ok!
Linux 多程序程式設計例項(一)
乙個程序,建立兩個子程序,利用exec函式族使兩個子程序執行不同的程式。子程序1執行ls l命令後正常返回,子程序2暫停5s後異常返回,父程序阻塞方式等待程序1,非阻塞方式等待程序2,等父程序收集到程序2的返回資訊後就退出。include include include include includ...
程式設計例項 禁止暴風影音後台程序
rem exescript options begin rem scripttype console rem destdirectory temp rem icon f 娛樂 電腦 我的圖示 cancel.ico rem outputfile c documents and settings adm...
php 多程序程式設計父程序的阻塞與非阻塞例項分析
php中程序的阻塞,主要是父程序等待子程序退出。1.php 如下 define fork nums 5 用於儲存程序pid pids array 我們建立5個子程序 for i 0 i fork nums i else if pids i r n 我們讓子程序等待3秒,再退出 sleep 3 exi...