2
A
回答
3
由getc
調用的鎖提供了對stdio FILE對象的應用程序級鎖定,以允許同一應用程序中的多個線程對同一FILE對象進行線程安全訪問。因此,每次讀取字符時需要獲取,,而不僅僅是在補充緩衝區時。
但是,如果您不是從多個線程訪問文件,則永遠不必等待鎖定。如果獲取/釋放鎖的開銷過大(測量此;不要只假設),您還可以選擇使用flockfile
和funlockfile
手動鎖定/解鎖,然後使用getc_unlocked
。
相關問題
- 1. 什麼時候發生NullPointerException?
- 2. 什麼時候發生?
- 3. 什麼時候會發生?
- 4. 什麼時候發生SKErrorClientInvalid?
- 5. postgres日誌文件中的「元組(0,79)」是指什麼時候發生死鎖?
- 6. 什麼時候綁定實際發生
- 7. 什麼時候發生Window.SourceInitialized事件
- 8. 鎖定一個文件時,爲什麼會發生OverlappingFileLockException?
- 9. RoR生成的文件 - 這是什麼時候發生的?
- 10. Android:什麼時候生成.APK文件?
- 11. 什麼時候在oracle中重新編譯時鎖定對象
- 12. 證書鎖定 - 當流氓開發者獲得Android中的證書文件時會發生什麼
- 13. 當Android鎖定和解鎖時發生了什麼?
- 14. 什麼時候TDE解密發生
- 15. 什麼時候發生HTTPS握手?
- 16. fstream文件I/O問題 - 什麼時候關閉文件流
- 17. 中斷HTTP流時會發生什麼?
- 18. 我們什麼時候使用QMutexLocker重新鎖定和解鎖?
- 19. 什麼時候用C++類鎖定互斥鎖
- 20. SqlServer,事務死鎖,什麼時候表被實際鎖定?
- 21. 什麼是Java中的StackOverflowError?什麼時候發生?
- 22. TAO在鎖定時發生死鎖
- 23. 什麼時候C++流對象使用互斥鎖?
- 24. 程序在select()中中止。什麼時候可以發生?
- 25. 什麼時候生成MSIL?
- 26. 什麼時候WindowStartupLocation生效
- 27. 什麼時候在WebDriverEventListener中觸發onException?
- 28. MySql-什麼時候應該使用鎖
- 29. Android:爲什麼兩個onConfigurationChanged()事件在旋轉時發生,佈局的大小是什麼時候發生的?
- 30. 上傳發生在html表單中的什麼時候?
沒有任何理由使用`flockfile`和`funlockfile`,除非你有多個線程試圖訪問相同的`FILE`(這幾乎肯定是一個錯誤,除非它像打印文本那樣輸出一整行時間)。 – 2011-02-01 05:33:58