2010-03-15 69 views
0

我正在寫一個MPI C程序。我有調試它的麻煩,因爲每當我使用fprintf,就像這樣:fprintf(stdout,「worker:%d」,worker);如果程序掛起,由於某些阻塞MPI_Recv,我看不到任何輸出。我確定已經達到了這行代碼,因爲我可以在fprintf語句之後放置一個return語句,在這種情況下,該進程完成執行並輸出結果。有關如何打印(請參閱輸出)的任何想法,即使Recv過程稍後會被阻止? 我希望這是有道理的。MPI C fprintf()輸出沒有顯示,如果進程掛起MPI_Recv

回答

1

默認情況下,stdout是行緩衝,所以你可能要結束調試打印要求用換行:

fprintf(stdout, "workder: %d\n", worker); 

如果你不想換行,你可以自己沖洗流:

fprintf(stdout, "workder: %d", worker); 
fflush(stdout);