成人在线你懂的-成人在线免费小视频-成人在线免费网站-成人在线免费视频观看-日韩精品国产一区二区-日韩精品国产一区

掃一掃
關注微信公眾號

Linux程序設計入門 系統進程的詳細介紹2
2007-08-16   網絡

wait系統調用會使父進程阻塞直到一個子進程結束或者是父進程接受到了一個信號.如果沒有父進程沒有子進程或者他的子進程已經結束了wait回立即返回.成功時(因一個子進程結束)wait將返回子進程的ID,否則返回-1,并設置全局變量errno.stat_loc是子進程的退出狀態.子進程調用exit,_exit 或者是return來設置這個值. 為了得到這個值Linux定義了幾個宏來測試這個返回值。

WIFEXITED:判斷子進程退出值是非0

WEXITSTATUS:判斷子進程的退出值(當子進程退出時非0).

WIFSIGNALED:子進程由于有沒有獲得的信號而退出.

WTERMSIG:子進程沒有獲得的信號號(在WIFSIGNALED為真時才有意義).

waitpid等待指定的子進程直到子進程返回.如果pid為正值則等待指定的進程(pid).如果為0則等待任何一個組ID和調用者的組ID相同的進程.為-1時等同于wait調用.小于-1時等待任何一個組ID等于pid絕對值的進程. stat_loc和wait的意義一樣. options可以決定父進程的狀態.可以取兩個值 WNOHANG:父進程立即返回當沒有子進程存在時. WUNTACHED:當子進程結束時waitpid返回,但是子進程的退出狀態不可得到.父進程創建子進程后,子進程一般要執行不同的程序.為了調用系統程序,我們可以使用系

統調用exec族調用.exec族調用有著5個函數.

#include <unistd.h> 
int execl(const char *path,const char *arg,...); 
int execlp(const char *file,const char *arg,...); 
int execle(const char *path,const char *arg,...); 
int execv(const char *path,char *const argv[]); 
            int execvp(const char *file,char *const argv[]):

exec族調用可以執行給定程序.關于exec族調用的詳細解說可以參考系統手冊(man exec

下面我們來學習一個實例.注意編譯的時候要加 -lm以便連接數學函數庫.

#include <unistd.h> 
#include <sys/types.h> 
#include <sys/wait.h> 
#include <stdio.h> 
#include <errno.h> 
#include <math.h> 
void main(void) 
{ 
pid_t child; 
int status; 
printf("This will demostrate how to get child status "); 
if((child=fork())==-1) 
{ 
printf("Fork Error :%s ",strerror(errno)); 
exit(1); 
} 
else if(child==0) 
{ 
int i; 
printf("I am the child:%ld ",getpid()); 
for(i=0;i<1000000;i++) sin(i); 
i=5; 
printf("I exit with %d ",i); 
exit(i); 
} 
while(((child=wait(&status))==-1)&(errno==EINTR)); 
if(child==-1) 
printf("Wait Error:%s ",strerror(errno)); 
else if(!status) 
printf("Child %ld terminated normally return status is zero ", 
child); 
else if(WIFEXITED(status)) 
printf("Child %ld terminated normally return status is %d ", 
child,WEXITSTATUS(status)); 
else if(WIFSIGNALED(status)) 
printf("Child %ld terminated due to signal %d znot caught ", 
child,WTERMSIG(status));  
            }

strerror函數會返回一個指定的錯誤號的錯誤信息的字符串。

熱詞搜索:

上一篇:Linux程序設計入門 系統進程的詳細介紹1
下一篇:Linux程序設計入門 系統進程的詳細介紹3

分享到: 收藏
主站蜘蛛池模板: 抗日电影血战日寇| 二手家具转让| 地震的现场急救原则包括| 转正意见评语| 原创视频| 我的电影在线观看| 红旗车驾驶员个人主要事迹材料 | 艳妇乳肉豪妇荡乳ⅹxxo| 小学生必用头像| 降魔的| 豆花电影免费播放| 徐情| 2024微信头像图片| 汤唯惊艳写真集| 视频污污| 媚狐传| 权志龙壁纸| 哈尔的移动城堡讲了什么| 坏老师| 小涛讲电影| 魏凤| cctv16节目单| 电影壮志凌云| 微信头像图片2024最新| 金装维尔梅| 我的神我要赞美你| 日本大片网址| 奇爱博士| 日本十大歌姬排名| 浣肠アナル地狱| 艳妇乳肉豪妇荡乳ⅹxxooav| 《重紫》电视剧| 废纸板拳击手| 蝴蝶视频在线观看| 《爱的温暖》电影在线观看| 热带雨林电影完整版播放| 黄网站免费观看视频| 一场风花雪月的事电影| 李坤忆| 性感美女动漫| 太太的情人电影|