[問題] thread

看板C_and_CPP (C/C++)作者 (honamida)時間13年前 (2012/10/20 21:00), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/2 (看更多)
最近在學 THREAD的用法 由於作業的要求 我就試著照上課裡的範例修改 寫一個列印小於輸入的整數的所有質數的程式 void *threadProcess (void *param){ for(int i=2 ; i<=atoi((char*)param) ;i++){ int temp = i; double task = rootSquare(temp); ( 開根號 ) int set = 0; for(int k=2; k<=task+0.1 ; k++){ if(i%k ==0) set = 1; } if(set == 0) printf("%d",i); ←───────****** } } int main (int argc , char* argv[]){ pthread_t tid; pthread_attr_t attr; if(argc != 2 ){ fprintf(stderr , "usage : a.out < interger value\n"); return -1; } if( atoi(argv[1]) < 0){ fprintf(stderr, "%d must be >= 0 \n",atoi(argv[1])); return -1; } pthread_attr_init(&attr); pthread_create(&tid,&attr,threadProcess,argv[1]); pthread_join(tid,NULL); } 問題出在箭頭指的地方 像我這樣是印不出任何東西 但是如果printf裡多給一個換行\n 就印的出來 想請問一下究竟是為什麼如果不給 \n 在thread裡就印不出任何東西 感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.195.25.35 ※ 編輯: honamida 來自: 123.195.25.35 (10/20 21:04)

10/20 23:50, , 1F
其實是有印出來只是被 buffer 住了, \n 會清 buffer 顯示出來
10/20 23:50, 1F

10/20 23:52, , 2F
用 fflush(stdout); 也可以強制把 buffer 內容送出去
10/20 23:52, 2F
文章代碼(AID): #1GWg25u5 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1GWg25u5 (C_and_CPP)