2011-12-11 17 views
0

東西在我眼前,但我沒有看到它。在linux中分出一個孩子後沒有任何數據

if (childpid == 0) 
     { 
       std::cout << "Hi" << std::endl; 
       int rc = startDevice2((char*)devices,ports); 
       std::cout << rc << std::endl; 

     } 
     else 
     { 
       waitpid (-1, NULL, 0); 
       std::cout << "Parent process stops" << std::endl; 
     } 

一個虛擬startDevice2如下

int startDevice2(char* x, int port) { return 4;} 

因此,而不是在我的標準輸出看到RC = 4,我沒有看到什麼。 startDevice2從另一個文件鏈接。 !嗨打印,但在不在。

什麼是錯的?我期待在孩子的代碼中看到rc

+2

我是什麼?什麼是destinations.size()?你確定第一個比第二個更大嗎? – Staven

+0

nothng特殊。只是編輯了代碼。我需要幾個值並且大於10. – cateof

+1

您是否檢查過變量「i」是否真的大於或等於'destination.size()'?使用調試器,或者至少在'startServer'分支中加入'cout'。 – kol

回答

0

如果程序沒有達到startDevice2以上的時間點,那麼該函數需要很長時間才能完成,否則會使程序崩潰。你確定參數是正確的嗎?例如,您懷疑您投了devices參數。

(假設「dummy」startDevice2不是真正使用的)

相關問題