2

我正在重新阅读/proc/stat文件以获取更新的值。首先,我打开文件,读取每一行,关闭文件并重新打开以获取更新的值。我想知道是否需要关闭文件,或者我可以通过寻找文件的开头来达到相同的效果。我写了一个没有关闭文件的代码,而是将文件指针放在文件的开头,它和以前一样工作。但我想知道,将寻求文件的开头保证我会得到更新的信息?

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

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

编辑

这是我写的代码。

while ()
{
  open (STAT, "/proc/stat") or die "Cannot open /proc/stat\n";
  while (<STAT>)
  {
    #Stuff here
  }
  close (STAT);
  sleep 1;
}

比。

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);

哪一个更可取?

4

1 回答 1

0

这两个都应该工作。seek 应该清除文件句柄上的 EOF 标志,以便您可以再次阅读它,但是如果您需要绝对确定您正在获得一份新副本,我会选择关闭并重新打开。

请参阅寻求更多信息。

于 2013-08-16T19:56:06.063 回答