Как привести статус типа с плавающей точкой к WEXITSTATUS
У меня есть код ниже, но мне нужно это exit(status)
вернуть поплавок, но WEXITSTATUS
не получает float, потому что статус должен быть int, так какое решение, пожалуйста?
scanf("%f%f",&f,&g);
P = fork();
if(P == 0){
printf("\nje suis le fils multiplication: PID = %d\n", getpid() );
printf("mon pere: PID = %d\n", getppid() );
resultat2 = f * g;
exit(resultat2);
}else if(P < 0){
printf("FORK a echoue\t");
exit(EXIT_FAILURE);
}else{
printf("\nje suis le pere : PID = %d\n", getpid() );
printf("mon fils: PID = %d\n", P );
P = wait(&status);
if(WIFEXITED(status))
printf("le produit = %d \n", WEXITSTATUS(status));
}
1 ответ
Статус выхода не предназначен для переноса результатов расчетов. Он предназначен для указания успешного завершения с 0 и неуспешного завершения со значением больше нуля. Вы можете передать разные ненулевые значения, чтобы вернуть коды ошибок.
Не злоупотребляйте этим механизмом. Вы должны распечатать свой результат и разобрать его в родительском.