Как привести статус типа с плавающей точкой к 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 и неуспешного завершения со значением больше нуля. Вы можете передать разные ненулевые значения, чтобы вернуть коды ошибок.

Не злоупотребляйте этим механизмом. Вы должны распечатать свой результат и разобрать его в родительском.

Другие вопросы по тегам