![Linux 上 proc 檔案系統的更新頻率是多少?](https://rvso.com/image/31685/Linux%20%E4%B8%8A%20proc%20%E6%AA%94%E6%A1%88%E7%B3%BB%E7%B5%B1%E7%9A%84%E6%9B%B4%E6%96%B0%E9%A0%BB%E7%8E%87%E6%98%AF%E5%A4%9A%E5%B0%91%EF%BC%9F.png)
proc
Linux 上檔案系統的更新頻率是多少?是20毫秒(時間量子)嗎?
答案1
您從 proc 檔案系統讀取的資訊不會儲存在任何媒體上(甚至不在 RAM 中),因此無需更新任何內容。
proc 檔案系統的目的是允許使用者空間程式使用簡單且熟悉的檔案系統語義(open
、close
、read
、write
、lseek
)來獲取或設定內核數據,即使讀取或寫入的資料不駐留在任何媒體上。對於獲取和設定無法提前指定格式的數據,這種設計決策被認為比實現諸如ASN1 編碼的OID 之類的東西更好(例如,人類可讀且易於編寫腳本),後者也可以很好地工作。
從 proc 檔案系統讀取時看到的資料是從檔案開頭讀取時即時產生的。也就是說,執行讀取操作會導致特定於您正在讀取的檔案的核心回呼函數產生資料。對檔案的開頭進行操作lseek
並再次讀取會導致再次呼叫再次產生資料的回呼。類似地,當您寫入 proc 檔案系統中的可寫入檔案時,會呼叫回調函數來解析輸入並設定核心變數。不儲存原始形式的輸入資料。
以上只是豪克·拉金(Hauke Laging)簡潔表述內容的一種稍微冗長的表達方式。我建議你接受他的回答。
答案2
每次訪問時都會更新。您會看到那一刻內核的狀態。這就是為什麼「檔案」顯示的大小不是真實大小的原因。實際大小可能會發生變化,並在您存取文件時確定。
你可能會說,可能好幾天不更新了。如果你不看的話。 :-)