亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 多進程編程的相關知識總結(一).txt

?? 本資源中含有有關LINUX進程通信的一些文章
?? TXT
?? 第 1 頁 / 共 5 頁
字號:
             #include  
             pid_t waitpid(pid,stat_loc,options) 
             pid_t pid; 
             int *stat_loc,options; 
        說明:當pid等于-1,options等于0時,該系統調用等同于wait().否則該 

             系統調用的行為由參數pid和options決定. 
             pid指定了一組父進程要求知道其狀態的子進程: 
                -1:要求知道任何一個子進程的返回狀態. 
                >0:要求知道進程號為pid值的子進程的狀態. 
                <-1:要求知道進程組號為pid的絕對值的子進程的狀態. 
options參數為以比特方式表示的標志以或運算組成的位圖,每個 

標志以字節中某個比特置1表示: 
WUNTRACED:報告任何未知而又已停止運行的指定進程號的子進 

程的狀態.該子進程的狀態自停止運行時起就沒有被報告 
過. 
WCONTINUED:報告任何繼續運行的指定進程號的子進程的狀態, 

該子進程的狀態自繼續運行起就沒有被報告過. 
WHOHANG:若調用本系統調用時,指定進程號的子進程的狀態目 
前并不是立即有效的(即可被立即讀取的),調用進程并被 
暫停執行. 
WNOWAIT:保持將其狀態設置在stat_loc的進程在可等待狀態. 
該進程將等待直到下次被要求其返回狀態值. 
返回值:等待到一個子進程返回時,返回值為該子進程號,否則返回值為 

-1.同時stat_loc返回子進程的返回值. 
例子:pid_t pid; 
int stat_loc; 
/*父進程*/ 
if ((pid=fork())>0) { 
                 waitpid(pid,&stat_loc,0); 
                 /*父進程等待進程號為pid的子進程的返回*/ 
             } 
             else { 
                 /*子進程的處理過程*/ 
                 exit(1); 
             } 
             /*父進程*/ 
             printf("stat_loc is [%d]\n",stat_loc); 
             /*字符串"stat_loc is [1]"將被打印出來*/ 
    8.setpgrp() 
        功能:設置進程組號和會話號.
        語法:#include  
             pid_t setpgrp() 
        說明:若調用進程不是會話首進程.將進程組號和會話號都設置為與它 
             的進程號相等.并釋放調用進程的控制終端. 
        返回值:調用成功后,返回新的進程組號. 
        例子:/*父進程處理*/ 
             if (fork()>0) { 
                 /*父進程處理*/ 
             } 
             else { 
                 setpgrp(); 
                 /*子進程的進程組號已修改成與它的進程號相同*/ 
                 exit(0); 
             } 
    9.exit() 
        功能:終止進程. 
        語法:#include  
             void exit(status) 
             int status; 
        說明:調用進程被該系統調用終止.引起附加的處理在進程被終止前全 
             部結束. 
        返回值:無 
    10.signal() 
        功能:信號管理功能 
        語法:#include  
             void (*signal(sig,disp))(int) 
             int sig; 
             void (*disp)(int); 

             void (*sigset(sig,disp))(int) 
             int sig; 
             void (*disp)(int); 

             int sighold(sig) 
             int sig; 

             int sigrelse(sig) 
             int sig; 

             int sigignore(sig) 
             int sig; 

             int sigpause(sig) 
             int sig; 
        說明:這些系統調用提供了應用程序對指定信號的簡單的信號處理. 
             signal()和sigset()用于修改信號定位.參數sig指定信號(除了 
             SIGKILL和SIGSTOP,這兩種信號由系統處理,用戶程序不能捕捉到)
. 
             disp指定新的信號定位,即新的信號處理函數指針.可以為
             SIG_IGN,SIG_DFL或信號句柄地址. 
             若使用signal(),disp是信號句柄地址,sig不能為SIGILL,SIGTRAP

             或SIGPWR,收到該信號時,系統首先將重置sig的信號句柄為SIG_DF
L, 
             然后執行信號句柄. 
             若使用sigset(),disp是信號句柄地址,該信號時,系統首先將該 
             信號加入調用進程的信號掩碼中,然后執行信號句柄.當信號句柄 

             運行結束 
             后,系統將恢復調用進程的信號掩碼為信號收到前的狀態.另外, 
             使用sigset()時,disp為SIG_HOLD,則該信號將會加入調用進程的 

             信號掩碼中而信號的定位不變. 
             sighold()將信號加入調用進程的信號掩碼中. 
             sigrelse()將信號從調用進程的信號掩碼中刪除. 
             sigignore()將信號的定位設置為SIG_IGN. 
             sigpause()將信號從調用進程的信號掩碼中刪除,同時掛起調用 
             進程直到收到信號. 
             若信號SIGCHLD的信號定位為SIG_IGN,則調用進程的子進程在終 
             止時不會變成僵死進程.調用進程也不用等待子進程返回并做相 
             應處理. 
        返回值:調用成功則signal()返回最近調用signal()設置的disp的值. 
             否則返回SIG_ERR. 
        例子一:設置用戶自己的信號中斷處理函數,以SIGINT信號為例: 
             int flag=0; 
             void myself() 
             { 
                 flag=1; 
                 printf("get signal SIGINT\n"); 
                 /*若要重新設置SIGINT信號中斷處理函數為本函數則執行以 

                  *下步驟*/ 
                 void (*a)(); 
                 a=myself; 
                 signal(SIGINT,a); 
                 flag=2; 
             } 
             main() 
             { 
                 while (1) {
                     sleep(2000);  /*等待中斷信號*/ 
                     if (flag==1) { 
                         printf("skip system call sleep\n"); 
                         exit(0); 
                     } 
                     if (flag==2) { 
                         printf("skip system call sleep\n"); 
                         printf("waiting for next signal\n"); 
                     } 
                 } 
             } 
    11.kill() 
        功能:向一個或一組進程發送一個信號. 
        語法:#include  
             #include  
             int kill(pid,sig); 
             pid_t pid; 
             int sig; 
        說明:本系統調用向一個或一組進程發送一個信號,該信號由參數sig指 

             定,為系統給出的信號表中的一個.若為0(空信號)則檢查錯誤但 
             實際上并沒有發送信號,用于檢查pid的有效性. 
             pid指定將要被發送信號的進程或進程組.pid若大于0,則信號將 
             被發送到進程號等于pid的進程;若pid等于0則信號將被發送到所 

             有的與發送信號進程同在一個進程組的進程(系統的特殊進程除 
             外);若pid小于-1,則信號將被發送到所有進程組號與pid絕對值 
             相同的進程;若pid等于-1,則信號將被發送到所有的進程(特殊系 

             統進程除外). 
             信號要發送到指定的進程,首先調用進程必須有對該進程發送信 
             號的權限.若調用進程有合適的優先級則具備有權限.若調用進程 

             的實際或有效的UID等于接收信號的進程的實際UID或用setuid() 

             系統調用設置的UID,或sig等于SIGCONT同時收發雙方進程的會話 

             號相同,則調用進程也有發送信號的權限. 
             若進程有發送信號到pid指定的任何一個進程的權限則調用成功, 

             否則調用失敗,沒有信號發出.
        返回值:調用成功則返回0,否則返回-1. 
        例子:假設前一個例子進程號為324,現向它發一個SIGINT信號,讓它做 
             信號處理: 
             kill((pid_t)324,SIGINT); 
    12.alarm() 
        功能:設置一個進程的超時時鐘. 
        語法:#include  
             unsigned int alarm(sec) 
             unsigned int sec; 
        說明:指示調用進程的超時時鐘在指定的時間后向調用進程發送一個 
             SIGALRM信號.設置超時時鐘時時間值不會被放入堆棧中,后一次 
             設置會把前一次(還未到超時時間)沖掉. 
             若sec為0,則取消任何以前設置的超時時鐘. 
             fork()會將新進程的超時時鐘初始化為0.而當一個進程用exec() 

             族系統調用新的執行文件時,調用前設置的超時時鐘在調用后仍 
             有效. 
        返回值:返回上次設置超時時鐘后到調用時還剩余的時間秒數. 
        例子:int flag=0; 
             void myself() 
             { 
                 flag=1; 
                 printf("get signal SIGALRM\n"); 
                 /*若要重新設置SIGALRM信號中斷處理函數為本函數則執行 
                  *以下步驟*/ 
                 void (*a)(); 
                 a=myself; 
                 signal(SIGALRM,a); 
                 flag=2; 
             } 
             main() 
             { 
                 alarm(100);       /*100秒后發超時中斷信號*/ 
                 while (1) { 
                     sleep(2000);  /*等待中斷信號*/ 
                     if (flag==1) { 
                         printf("skip system call sleep\n"); 
                         exit(0);
                     } 
                     if (flag==2) { 
                         printf("skip system call sleep\n"); 
                         printf("waiting for next signal\n"); 
                     } 
                 } 
             } 
    13.msgsnd() 
        功能:發送消息到指定的消息隊列中. 
        語法:#include  
             #include  
             #include  
             int msgsnd(msqid,msgp,msgsz,msgflg) 
             int msqid; 
             void *msgp; 
             size_t msgsz; 
             int msgflg; 
        說明:發送一個消息到由msqid指定消息隊列標識號的消息隊列. 
             參數msgp指向一個用戶定義的緩沖區,并且緩沖區的第一個域應 
             為長整型,指定消息類型,其他數據放在緩沖區的消息中其他正文 

             區內.下面是消息元素定義: 
               long mtype; 
               char mtext[]; 
             mtype是一個整數,用于接收進程選擇消息類型. 
             mtext是一個長度為msgsz字節的任何正文,參數msgsz可從0到系 
             統允許的最大值間變化. 
             msgflg指定操作行為: 
             . 若(msgflg&IPC_NOWAIT)是真的,消息并不是被立即發送而調用 

               進程會立即返回. 
             . 若(msgflg&IPC_NOWAIT)不是真的,則調用進程會被掛起直到下 

               面情況之一發生: 
                 * 消息被發送出去. 
                 * 消息隊列標志被系統刪除.系統調用返回-1. 
                 * 調用進程接收到一個未被忽略的中斷信號,調用進程繼續
                   執行或被終止. 
             調用成功后,對應指定的消息隊列的相關結構做如下動作: 
             . 消息數(msg_qnum)加1. 
             . 消息隊列最近發送進程號(msg_lspid)改為調用進程號. 
             . 消息隊列發送時間(msg_stime)改為當前系統時間. 
             以上信息可用命令ipcs -a看到. 
        返回值:成功則返回0,否則返回-1
14.msgrcv() 
        功能:從消息隊列中取得指定類型的消息. 
        語法:#include <sys/types.h> 
             #include <sys/ipc.h> 
             #include <sys/msg.h> 
             int msgrcv(msqid,msgp,msgsz,msgtyp,msgflg) 
             int msqid; 
             void *msgp; 
             int msgsz; 
             long msgtyp; 
             int msgflg; 
        說明:本系統調用從由msqid指定的消息隊列中讀取一個由msgtyp指定 
             類型的消息到由msgp指向的緩沖區中,同樣的,該緩沖區的結構如 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区和二区| 国产成人夜色高潮福利影视| 91丨porny丨蝌蚪视频| 亚洲蜜桃精久久久久久久| 色婷婷综合在线| 美腿丝袜亚洲综合| 国产精品免费aⅴ片在线观看| 在线日韩av片| 国产精品一区二区久久不卡| 中文字幕亚洲在| 欧美成人r级一区二区三区| 色婷婷久久久综合中文字幕| 99r国产精品| 国产一区二区不卡| 性感美女久久精品| 国产精品美日韩| 亚洲人成在线观看一区二区| 夜夜嗨av一区二区三区中文字幕| 欧美成人激情免费网| 欧美精品一区二区在线观看| 欧美日韩一区二区在线视频| 97久久超碰国产精品电影| 不卡av在线网| 丰满亚洲少妇av| 精品一区二区三区视频| 三级欧美韩日大片在线看| 亚洲欧洲成人精品av97| 亚洲一区在线播放| 一区二区三区欧美久久| 亚洲国产日韩精品| 一二三区精品福利视频| 日本午夜一区二区| 丝袜亚洲另类欧美综合| 国产一区二区伦理| 在线观看视频欧美| 精品国产伦一区二区三区观看方式| 精品嫩草影院久久| 亚洲精品国产视频| 亚洲国产视频直播| 国产露脸91国语对白| 欧美综合天天夜夜久久| 欧美刺激脚交jootjob| 亚洲欧洲日本在线| 激情综合网激情| 在线观看免费成人| 中文字幕二三区不卡| 国产欧美视频一区二区三区| 久久久久免费观看| 国产精品免费av| 久久精品国产亚洲一区二区三区| 免费观看日韩av| 国产经典欧美精品| 91超碰这里只有精品国产| 欧美日韩aaaaa| 日韩欧美国产一区二区三区| 久久精品这里都是精品| 国产精品第四页| 亚洲高清久久久| 一本久道中文字幕精品亚洲嫩| 久久综合中文字幕| 亚洲欧美另类小说视频| 国产精品99久久不卡二区| 欧美一激情一区二区三区| 一区二区三区国产精华| 成人黄色小视频在线观看| 精品对白一区国产伦| 午夜av一区二区三区| 国产一区二区精品在线观看| 日韩一区二区视频在线观看| 亚洲小说春色综合另类电影| 色综合色综合色综合色综合色综合 | 亚洲国产成人tv| 91同城在线观看| 国产精品青草久久| 粉嫩嫩av羞羞动漫久久久| 欧美电影免费观看高清完整版在线 | 99久久久久久| 中文字幕av一区二区三区高 | 69堂成人精品免费视频| 亚洲高清一区二区三区| 欧美午夜在线观看| 久久免费电影网| 国产久卡久卡久卡久卡视频精品| 欧美成人a视频| 国产麻豆日韩欧美久久| 国产亚洲欧美一区在线观看| 紧缚捆绑精品一区二区| 国产午夜亚洲精品不卡| 99久久精品国产观看| 一区二区三区视频在线看| 欧美丝袜丝交足nylons| 日韩国产在线一| 91精品国产高清一区二区三区| 亚洲欧美另类小说| 欧美日韩一区 二区 三区 久久精品| 亚洲美女视频在线| 欧美丰满少妇xxxxx高潮对白| 国产精品久久久久久久久久免费看| 国产一区二区剧情av在线| 国产无遮挡一区二区三区毛片日本| 国产成人午夜高潮毛片| 亚洲图片激情小说| 福利一区二区在线观看| 亚洲三级免费观看| 欧美日本在线播放| 精品一区二区三区在线播放视频 | 日韩一区欧美小说| 欧美日韩国产在线观看| 蜜臀av国产精品久久久久| 国产欧美一区视频| 色老汉av一区二区三区| 国产精品久久久99| 欧美另类久久久品| 国产精品一区二区三区乱码 | 欧美一级在线观看| 国产99久久久国产精品| 一区二区三区四区精品在线视频| 欧美一卡二卡三卡| 91美女精品福利| 久久综合综合久久综合| 日韩理论在线观看| www亚洲一区| 欧美美女bb生活片| 91美女片黄在线观看91美女| 国内久久精品视频| 欧美激情一区二区三区四区 | 日韩一二在线观看| 91在线观看一区二区| 另类小说综合欧美亚洲| 亚洲精选免费视频| 久久精品在线免费观看| 日韩视频免费直播| 欧美视频在线不卡| 99久久精品情趣| 国内一区二区视频| 日本不卡一区二区三区| 亚洲一区二区三区免费视频| 国产精品第四页| 日本一区二区成人在线| 精品国产一区二区精华| 欧美区视频在线观看| 色播五月激情综合网| 99视频精品在线| 日韩1区2区3区| 亚洲成av人**亚洲成av**| 亚洲美女淫视频| 亚洲天堂av老司机| 国产精品久久久久久户外露出 | 亚洲一区二区美女| 一区二区三区在线视频播放| 亚洲精品视频免费观看| 成人欧美一区二区三区白人 | 奇米综合一区二区三区精品视频| 亚洲超丰满肉感bbw| 亚洲成年人网站在线观看| 亚洲一区二区三区爽爽爽爽爽| 亚洲精品视频自拍| 亚洲已满18点击进入久久| 一区二区三区四区亚洲| 亚洲资源中文字幕| 午夜精品久久久| 免费高清在线一区| 国产乱妇无码大片在线观看| 国产91丝袜在线观看| 成人av综合在线| 色八戒一区二区三区| 欧美理论电影在线| 日韩女优制服丝袜电影| 精品福利一区二区三区| 国产片一区二区| 亚洲一线二线三线视频| 午夜a成v人精品| 国产精品自产自拍| av一区二区三区| 欧美另类videos死尸| 精品国产百合女同互慰| 中文文精品字幕一区二区| 亚洲欧美日韩一区二区| 奇米色777欧美一区二区| 国产成人综合亚洲91猫咪| 91丝袜呻吟高潮美腿白嫩在线观看| 色婷婷综合久久久| 日韩精品一区二区三区swag| 国产精品毛片大码女人| 亚洲夂夂婷婷色拍ww47| 紧缚奴在线一区二区三区| 99re热这里只有精品视频| 欧美裸体一区二区三区| 欧美国产亚洲另类动漫| 亚洲风情在线资源站| 国产精品综合在线视频| 91丨porny丨在线| 精品日产卡一卡二卡麻豆| 综合激情网...| 麻豆精品国产91久久久久久| heyzo一本久久综合| 日韩免费观看高清完整版| 中文字幕亚洲一区二区av在线| 麻豆国产欧美日韩综合精品二区 | 欧美一区二区三区免费在线看 |