我有下面的代码,但是我需要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));
}
答案 0 :(得分:0)
退出状态并不意味着传输计算结果。它表示成功终止0和非成功终止,值大于零。您可以传递不同的非零值,以返回错误代码。
不要滥用这种机制。您应该打印结果并在父项中解析它。