0

我有下面的代码,但我需要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));
        }
4

1 回答 1

0

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

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

于 2015-04-04T14:11:06.543 回答