Linux 上的 proc 文件系统多久更新一次?

sam*_*asa 34 linux proc

procLinux 上的文件系统多久更新一次?是 20 毫秒(时间量程)吗?

Jon*_*ham 47

您从 proc 文件系统读取的信息未存储在任何媒体上(甚至不在 RAM 中),因此无需更新。

proc 文件系统的目的是允许用户空间程序使用简单而熟悉的文件系统语义(open, close, read, write, lseek)获取或设置内核数据,即使读取或写入的数据并不驻留在任何介质上。与实现 ASN1 编码的 OID 之类的东西相比,这种设计决策被认为更适合获取和设置无法预先指定格式的数据(例如人类可读和易于编写脚本),后者也可以正常工作。

从 proc 文件系统读取时看到的数据是在从文件开头读取时即时生成的。也就是说,执行读取会导致数据由特定于您正在读取的文件的内核回调函数生成。lseek对文件的开头执行 an并再次读取会导致再次调用再次生成数据的回调。类似地,当您写入 proc 文件系统中的可写文件时,会调用一个回调函数来解析输入并设置内核变量。原始形式的输入数据不会被存储。

以上只是对豪克·拉金(Hauke Laging)如此简洁的陈述的一种稍微冗长的表达方式。我建议你接受他的回答。


Hau*_*ing 25

它在每次访问时更新。你会看到内核在那一刻的状态。这就是为什么显示的“文件”大小不是真实大小的原因。实际大小可以更改,并在您访问文件时确定。

你可以说,它可能几天都没有更新。如果你不看的话。:-)

  • +1。这有点像“如果一棵树倒在森林里,周围没有人听到它,它会发出声音吗?”,即“如果有一个 proc 文件系统,但没有人读取它,它是否存在? ?”。 (11认同)
  • 那么猫到底死了没?看一看。吉姆死了。可怜的猫。 (4认同)