ฉันกำลังออกจากเธรดลูกกลับไปยังพาเรนต์ ฉันกำลังใช้การเรียกของระบบ _exit() ฉันสงสัยบางสิ่ง สิ่งแรกคือพารามิเตอร์สำหรับ _exit สำหรับลูกของฉัน นี่คือรหัสที่กระบวนการลูกของฉันกำลังดำเนินการ:
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() เพื่อให้แน่ใจว่าเด็กออกจากระบบแล้ว จากนั้นใช้สถานะเพื่อตรวจสอบว่าออกอย่างถูกต้องหรือไม่ ฉันสงสัยว่าฉันกำลังทำสิ่งนี้ในทางที่ถูกต้องในการสร้างเด็กและออกจากมันหรือไม่
แล้วฉันก็สงสัยว่าฉันตรวจสอบการออกจากเด็กในผู้ปกครองอย่างถูกต้องหรือไม่
ขอบคุณสำหรับความช่วยเหลือของคุณ!