【问题标题】:Unable to append redirected output files in windows无法在 Windows 中附加重定向的输出文件
【发布时间】:2015-06-12 02:13:19
【问题描述】:

我正在使用一个使用重定向输出方法登录的日志文件,而不是通常的日志记录函数或子例程。

我需要以附加模式打开文件,以便每小时截断相同的文件。 在 linux 中,我可以成功地以附加模式打开文件并使用 truncate() 函数。 但在 Windows 中,文件不会以附加模式打开或使用 perl 文件运算符打开。 使用 if 语句运行会在 Windows 中附加文件时给我错误的值条件。

相同的代码和逻辑在 linux 和 windows 上的工作方式不同。 在 perl 中尝试了 >>,+>,> 文件运算符,但在 windows 中都没有。

这可能是什么原因和解决方案?

【问题讨论】:

  • 如果 open 返回 false,$!$^E 包含相关的错误消息。它们是什么?

标签: windows perl file append truncate


【解决方案1】:

没有理由追加到文件在 Windows 中不起作用。但是perlport 中的这个金块可能是你需要知道的:

截断

如果提供了FILEHANDLE,它必须是可写的并以附加模式打开(即,使用open(FH, '>>filename')sysopen(FH,...,O_APPEND|O_RDWR)。如果提供了文件名,则不应在其他地方保持打开状态。(Win32)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-10
    • 1970-01-01
    • 2015-10-30
    相关资源
    最近更新 更多