可能重複:
stdout thread-safe in C on Linux?在同時運行的線程中調用printf是否線程安全?
說線程1和線程是類似的,在他們的工作他們都printf的結束。它是線程安全還是必須以某種方式鎖定printf?
它與標準輸出有關嗎?如果在每個printf之後執行fflush(stdout)會怎麼樣?它會改變什麼嗎?
可能重複:
stdout thread-safe in C on Linux?在同時運行的線程中調用printf是否線程安全?
說線程1和線程是類似的,在他們的工作他們都printf的結束。它是線程安全還是必須以某種方式鎖定printf?
它與標準輸出有關嗎?如果在每個printf之後執行fflush(stdout)會怎麼樣?它會改變什麼嗎?
的POSIX.1和C語言函數 ,關於字符流操作 (用指針表示到 類型的文件對象)由POSIX.1c需要 在這樣的方式來實現 重入(參見ISO/IEC 9945:1-1996,§8.2)。
注:有些功能是可重入或非重入的,這取決於他們的論點。
這些函數是* not *可重入的。它們是線程安全的。有很大的不同。可重入的函數自動地是線程安全的,但如果再次從它們已經運行的同一線程(例如來自信號處理程序)調用,線程安全函數仍可能死鎖(或更糟糕)。 – 2010-12-04 13:37:33
請參閱http://stackoverflow.com/questions/467938/stdout-thread-safe-in-c-on-linux – icecrime 2010-12-04 13:18:04