【问题标题】:End open file wih perl for frequently updated reports使用 perl 结束打开文件以获取经常更新的报告
【发布时间】:2012-02-03 20:34:04
【问题描述】:

我有一个守护进程,它需要向 /dev/loop0 文件系统中的文件报告一小部分统计信息。我正在使用 FileHandle 在 perl 中存储对文件句柄的引用。所以一个真正的小版本的问题看起来像这样:

#!/usr/bin/perl

use strict;
use warnings;
use FileHandle;

my $report = FileHandle->new("> /devfs/test");
print $report "Hello";
seek($report,0,0);
print $report "Hi";
$report->close();

结果将是 Hillo,这是我所期望的。我想做的是能够在你好(真的是你好)之后表明文件现在已经完成了。

问题: 从文件中读取时,您可以只搜索文件结尾 (EOF),但是如何在写入时指示文件结尾而不关闭它?如果有所作为,则该解决方案需要专门适用于 Linux。

【问题讨论】:

    标签: linux perl


    【解决方案1】:

    你想要truncate 函数。

    truncate($report, tell($report));
    

    ...将文件截断到文件指针当前所在的位置(由tell 报告)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-18
      • 2018-09-15
      • 2015-05-29
      • 2011-08-20
      • 1970-01-01
      相关资源
      最近更新 更多