在不关闭工作的情况下重新读取/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);