記錄下linux常用函數(shù)!
waitpid
waitpid()會(huì)暫時(shí)停止目前進(jìn)程的執(zhí)行,直到有信號(hào)來(lái)到或子進(jìn)程結(jié)束。
下面函數(shù)很常用,是父進(jìn)程等待子進(jìn)程的結(jié)束,并獲取子進(jìn)程的exit標(biāo)志。
waitpid(pid, &child_stat, 0) // pid是父進(jìn)程的pid,父進(jìn)程在這會(huì)停止,等待子進(jìn)程結(jié)束
WIFEXITED(child_stat) //如果子進(jìn)程正常結(jié)束,這個(gè)會(huì)是true
如果子進(jìn)程正常結(jié)束
waitpid(pid, &child_stat, 0) ;
if (WIFEXITED(child_stat)) {
LOGE(TAG "%s: terminated by exit(%d)\n", __FUNCTION__, WEXITSTATUS(child_stat));
return WEXITSTATUS(child_stat);
} else {
LOGE(TAG "%s: execl error, %d (%s)\n", __FUNCTION__, errno, strerror(errno));
return -1;
}