如何将float类型的状态转换为WEXITSTATUS

时间:2015-04-04 13:55:19

标签: c wexitstatus

我有下面的代码,但是我需要exit(status)返回一个浮点数,但WEXITSTATUS没有收到浮动原因状态必须为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 :(得分:0)

退出状态并不意味着传输计算结果。它表示成功终止0和非成功终止,值大于零。您可以传递不同的非零值,以返回错误代码。

不要滥用这种机制。您应该打印结果并在父项中解析它。