2014-01-24 31 views
0

有沒有關於printf()的內建東西,可以讓你用單獨的線程和使用cout/cerr來進行有序的屏幕I/O?我正在尋找東西這將讓我做同步屏幕輸出使用cout/cerr和pthreads。到目前爲止空白;可能不得不在週末想出點什麼。同步屏幕I/O和pthread&C++

+0

如何處理只輸出,從管道讀取的線程。而其他線程「發佈」到管道,而不是輸出? – AntonH

回答

1

這個包裝將如何工作?我假設你想從一個線程的多個打印連續出現...但包裝如何知道這些「組」開始和停止?

由於您必須對如何描繪這些「打印羣」進行描述,爲什麼不使用pthread_mutex_t

void thread1(void) { 
    pthread_mutex_lock(&print_mutex); 
    printf("This "); 
    printf("is "); 
    printf("thread "); 
    printf("one.\n"); 
    pthread_mutex_unlock(&print_mutex); 
} 

void thread2(void) { 
    pthread_mutex_lock(&print_mutex); 
    printf("This "); 
    printf("is "); 
    printf("thread "); 
    printf("two.\n"); 
    pthread_mutex_unlock(&print_mutex); 
} 
+0

我想這會工作,如果不是有點笨拙。這給了我一個想法,雖然...順便說一句,printf()工作正常。我想用cout&cerr。當你在輸出流上使用<<運算符的時候,那些分解。 –