如何将浮点类型的状态转换为WEXITSTATUS
问题描述:
我有下面的代码,但我需要exit(status)
返回一个浮点数,但WEXITSTATUS
没有收到浮点数原因状态必须是int,那么请问有什么解决方案?如何将浮点类型的状态转换为WEXITSTATUS
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表示成功终止,而用大于零的值表示不成功终止。您可以传递不同的非零值,以返回错误代码。
请勿滥用此机制。你应该打印你的结果并在父文件中解析。
编辑您的代码。 – gsamaras 2015-04-04 14:06:43
是的,法国代码。如果您使用英文文本并附加说明程序应该做什么,这将有所帮助。 – usr1234567 2015-04-04 14:11:52