2011-02-01 46 views

回答

3

getc調用的鎖提供了對stdio FILE對象的應用程序級鎖定,以允許同一應用程序中的多個線程對同一FILE對象進行線程安全訪問。因此,每次讀取字符時需要獲取,,而不僅僅是在補充緩衝區時。

但是,如果您不是從多個線程訪問文件,則永遠不必等待鎖定。如果獲取/釋放鎖的開銷過大(測量此;不要只假設),您還可以選擇使用flockfilefunlockfile手動鎖定/解鎖,然後使用getc_unlocked

+0

沒有任何理由使用`flockfile`和`funlockfile`,除非你有多個線程試圖訪問相同的`FILE`(這幾乎肯定是一個錯誤,除非它像打印文本那樣輸出一整行時間)。 – 2011-02-01 05:33:58

相關問題