所以,我退出子線程回父。我正在使用_exit()系統調用。我想知道幾件事情。一個是我的孩子的_exit參數。這裏是我的孩子進程正在執行的代碼:_exit(),fork()和waitpid()系統調用
printf("\n****Child process.****\n\nSquence: ");
do{
//Print the integer in the sequence.
printf("%d\t",inputInteger);
if((inputInteger%2) == 0){
//printf("inputInteger = %d\n", inputInteger);
inputInteger = inputInteger/2;
}else{
inputInteger = 3*inputInteger +1;
//printf("%d\t",inputInteger);
}
}while(inputInteger != 1);
//Makes sure we print off 1!
printf("%d\n\n", inputInteger);
//Properly exit
_exit(status);
我使用狀態,因爲早在我父線程我在waitpid函數()系統調用中使用它。這是在完成子項後執行的父進程的代碼。
waitpid_check = waitpid(processID, &status, 0);
printf("\n****Parent process.****\n");
if(waitpid_check == -1){
printf("Error in waitpid.\n");
exit(EXIT_FAILURE);
}
if(WIFEXITED(status)){
printf("Child process terminated normally!\n");
}
在這裏,我使用waitpid()系統調用確保孩子已退出,然後使用狀態檢查它是否已正確退出。我想知道是否以正確的方式去創造孩子並退出。
然後我還想知道我是否正確檢查了父母孩子的退出。
感謝您的幫助!
我們在這裏或進程說話線程?從調用中,它看起來像是在處理子進程,而不是子進程。 – jia103
是的,我正在處理流程。 – pmac89