C說話wait()函數:停止(中止)過程函數(經常使用)
頭文件:
#include <sys/types.h> #include <sys/wait.h>
界說函數:
pid_t wait (int * status);
函數解釋:wait()會臨時停滯今朝過程的履行, 直到有旌旗燈號離開或子過程停止. 假如在挪用wait()時子過程曾經停止, 則wait()會立刻前往子過程停止狀況值. 子過程的停止狀況值會由參數status 前往, 而子過程的過程辨認碼也會一快前往. 假如不在乎停止狀況值, 則參數 status 可以設成NULL. 子過程的停止狀況值請參考waitpid().
前往值:假如履行勝利則前往子過程辨認碼(PID), 假如有毛病產生則前往-1. 掉敗緣由存於errno 中.
典范
#include <stdlib.h> #include <unistd.h> #include <sys/types.h> #include <sys/wait.h> main() { pid_t pid; int status, i; if(fork() == 0) { printf("This is the child process. pid =%d\n", getpid()); exit(5); } else { sleep(1); printf("This is the parent process, wait for child...\n"; pid = wait(&status); i = WEXITSTATUS(status); printf("child's pid =%d . exit status=^d\n", pid, i); } }
履行:
This is the child process. pid=1501 This is the parent process, wait for child... child's pid =1501, exit status =5
C說話waitpid()函數:中止(停止)過程函數(或期待子過程中止)
頭文件:
#include <sys/types.h> #include <sys/wait.h>
界說函數:
pid_t waitpid(pid_t pid, int * status, int options);
函數解釋:waitpid()會臨時停滯今朝過程的履行, 直到有旌旗燈號離開或子過程停止. 假如在挪用wait()時子過程曾經停止, 則wait()會立刻前往子過程停止狀況值. 子過程的停止狀況值會由參數status 前往, 而子過程的過程辨認碼也會一快前往. 假如不在乎停止狀況值, 則參數status 可以設成NULL. 參數pid 為欲期待的子過程辨認碼, 其他數值意義以下:
1、pid<-1 期待過程組辨認碼為pid 相對值的任何子過程.
2、pid=-1 期待任何子過程, 相當於wait().
3、pid=0 期待過程組辨認碼與今朝過程雷同的任何子過程.
4、pid>0 期待任何子過程辨認碼為pid 的子過程.
參數option 可認為0 或上面的OR 組合:
WNOHANG:假如沒有任何曾經停止的子過程則立時前往, 不予以期待.
WUNTRACED:假如子過程進入暫停履行情形則立時前往, 但停止狀況不予以理睬. 子過程的停止狀況前往後存於status, 底下有幾個宏可辨別停止情形
WIFEXITED(status):假如子過程正常停止則為非0 值.
WEXITSTATUS(status):獲得子過程exit()前往的停止代碼, 普通會先用WIFEXITED 來斷定能否正常停止能力應用此宏.
WIFSIGNALED(status):假如子過程是由於旌旗燈號而停止則此宏值為真
WTERMSIG(status):獲得子過程因旌旗燈號而中斷的旌旗燈號代碼, 普通會先用WIFSIGNALED 來斷定後才應用此宏.
WIFSTOPPED(status):假如子過程處於暫停履行情形則此宏值為真. 普通只要應用WUNTRACED時才會有此情形.
WSTOPSIG(status):獲得激發子過程暫停的旌旗燈號代碼, 普通會先用WIFSTOPPED 來斷定後才應用此宏.
前往值:假如履行勝利則前往子過程辨認碼(PID), 假如有毛病產生則前往-1. 掉敗緣由存於errno 中.
典范:參考wait().
【IOS UI進修教程之應用代碼創立button】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!