2015-04-04 53 views
0

我有下面的代碼,但我需要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

+0

是的,法國代碼。如果您使用英文文本並附加說明程序應該做什麼,這將有所幫助。 – usr1234567 2015-04-04 14:11:52

回答

0

退出狀態並不意味着要傳輸計算結果。它意味着用0表示成功終止,而用大於零的值表示不成功終止。您可以傳遞不同的非零值,以返回錯誤代碼。

請勿濫用此機制。你應該打印你的結果並在父文件中解析。

相關問題