在我正在使用的設備上,我可以寫信給/sys/class/leds
來打開/關閉指示燈。我可以保持文件在我的代碼中打開,並且只在流程退出時關閉,或者我需要在寫入文件時纔打開文件?我應該讓sysfs文件在更長一段時間內保持打開嗎?
1
A
回答
1
是的。這樣做似乎沒有壞處。
我試着在第一殼
#tailf /sys/class/leds/mmc0\:\:/brightness
而且在第二外殼下面,嘗試了同樣的事情。
#tailf /sys/class/leds/mmc0\:\:/brightness
本實驗只是爲了顯示的是,在從另一處理(第二殼)沒有點開口(tailf)受到影響由先前打開(tailf)在所述第一外殼。
0
如果您在Linux內核源代碼中查看tools/thermal/tmon/sysfs.c,所有函數都使用open-> read/write-> close。尤其是使用fread/fwrite等標準C庫函數時,緩衝可能會導致問題。或者你可以在每次寫入之後使用fflush()。我仍然更願意爲每次寫入打開和關閉它,因爲sysfs條目不是基於磁盤的,並且可以在運行時更改。特別是如果它們對應於熱插拔設備。
+0
感謝您指出使用fwrite時遇到的問題。 – mr49
0
每次打開和關閉文件描述符(fopen)總是最佳實踐。如果你將始終保持你的sysfs打開;那麼它將保持這個特定數量的內存直到結束。
相關問題
- 1. 我應該重複打開/關閉一個文件還是將其保持打開一段時間(〜1周)?
- 2. 我應該讓QFile(或fstream)打開嗎?
- 3. 長時間保持C#文件流打開是否安全?
- 4. 我應該在長時間運行的過程中保持套接字打開嗎?
- 5. 我應該在郵件之間打開一個smtp connecton嗎?
- 6. 保持很長一段時間
- 7. 我應該保持SerialPort連接打開嗎?
- 8. 我應該保持Sqlite連接打開嗎?
- 9. 我應該保持數據庫連接打開嗎?
- 10. 我應該保持一個數據庫連接在MySQLdb中打開嗎?
- 11. 我應該每次打開一個IDBDatabase還是保持一個實例打開?
- 12. 我應該如何讓多個項目之間保持一致?
- 13. 可以在SQLite中長時間保持讀事務處於打開狀態嗎?
- 14. 保持ADODB連接打開一段時間
- 15. 連接池應該比保持連接打開慢得多嗎?
- 16. 點擊框中的jQuery應該保持打開狀態嗎?
- 17. ios應用程序長時間保持打開狀態變得沒有反應
- 18. 我應該在定期同步之間保持SFTP連接是否打開?
- 19. Secure Gateway服務保持連接打開多長時間
- 20. 保持LINQ-to-SQL DataContext打開的時間要多長?
- 21. 讓一個類的實例在內存中保留更長時間(在ARC下)
- 22. 我該如何長時間保持聲音?
- 23. WM6.5連接到SQL Server 2008:我應該保持連接打開嗎?
- 24. MySQL,我應該在需要時保持連接或連接嗎?
- 25. XmlDocument的保存保持文件打開
- 26. 爲什麼我應該保持流打開,而使用位圖
- 27. 爲什麼我應該關閉或保持Redis連接打開?
- 28. 我應該保持SSH連接到Unix打開
- 29. 我應該保持Apple開發者團隊ID的祕密嗎?
- 30. 長時間保存文件
只需保持一個文件更長時間的打開('tail -f')。 –
@CL感謝您的建議。 – Drad
@subin我不同意sysfs條目會被緩存的地方。 sysfs條目像ramfs/tmpfs一樣在內存中。沒有像實際磁盤那樣的磁盤緩存。 – Drad