在不关闭工作的情况下重新读取/proc中正在更新的文件吗?

在不关闭工作的情况下重新读取/proc中正在更新的文件吗?,c,linux,perl,unix,procfs,C,Linux,Perl,Unix,Procfs,我正在重新读取/proc/stat文件以获取更新的值。首先,我打开文件,读取每一行,关闭文件,然后重新打开以获得更新的值。我想知道是否有必要关闭一个文件,或者我可以通过尝试启动文件来达到同样的效果。我编写了一个代码,它没有关闭文件,而是将文件指针放在文件的开头,与以前一样工作。但我想知道的是,威尔正在寻求文件的开始,保证我会得到最新的信息吗 编辑:还有一点,我在寻找和阅读之间睡觉 虽然这个问题不是特定于语言的,但这里有上下文中的实现语言:C、Perl 编辑 这是我写的代码 while () {

我正在重新读取
/proc/stat
文件以获取更新的值。首先,我打开文件,读取每一行,关闭文件,然后重新打开以获得更新的值。我想知道是否有必要关闭一个文件,或者我可以通过尝试启动文件来达到同样的效果。我编写了一个代码,它没有关闭文件,而是将文件指针放在文件的开头,与以前一样工作。但我想知道的是,威尔正在寻求文件的开始,保证我会得到最新的信息吗

编辑:还有一点,我在寻找和阅读之间睡觉

虽然这个问题不是特定于语言的,但这里有上下文中的实现语言:C、Perl

编辑

这是我写的代码

while ()
{
  open (STAT, "/proc/stat") or die "Cannot open /proc/stat\n";
  while (<STAT>)
  {
    #Stuff here
  }
  close (STAT);
  sleep 1;
}
while()
{
打开(STAT,“/proc/STAT”)或死亡“无法打开/proc/STAT\n”;
而()
{
#这里的东西
}
关闭(统计);
睡眠1;
}
Vs

open(STAT,“/proc/STAT”)或die“无法打开/proc/STAT\n”;
而()
{
seek STAT,seek_SET,0;
而()
{
#这里的东西
}
睡眠1;
}
关闭(统计);

哪一个更好?

这两种方法都应该有效
seek
应该清除文件句柄上的EOF标志,以便您可以再次阅读,但如果您需要绝对确保获得新副本,我会选择关闭并重新打开

有关更多信息,请参阅。

的可能重复项
open (STAT, "/proc/stat") or die "Cannot open /proc/stat\n";
while ()
{
  seek STAT, SEEK_SET, 0;
  while (<STAT>)
  {
    #Stuff here
  }
  sleep 1;
}
close (STAT);