gpt4 book ai didi

perl - 如何生成随机唯一的临时文件名?

转载 作者:行者123 更新时间:2023-12-04 16:23:49 25 4
gpt4 key购买 nike

我正在尝试使用以下代码创建一个临时文件:

 use File::Temp  ;
$tmp = File::Temp->new( TEMPLATE => 'tempXXXXX',
DIR => 'mydir',
SUFFIX => '.dat');

这是创建临时文件。由于我的权限问题,其他程序无法写入文件。

所以我只想生成文件名而不创建文件。有什么地方可以这样做吗?

最佳答案

如果您没有在创建名称的同时创建文件,则可以在手动创建文件之前创建具有相同名称的文件。如果您需要让不同的进程打开文件,只需先关闭它:

#!/usr/bin/perl

use strict;
use warnings;

use File::Temp;

sub get_temp_filename {
my $fh = File::Temp->new(
TEMPLATE => 'tempXXXXX',
DIR => 'mydir',
SUFFIX => '.dat',
);

return $fh->filename;
}

my $filename = get_temp_filename();

open my $fh, ">", $filename
or die "could not open $filename: $!";

处理权限问题的最佳方法是确保运行这两个程序的用户都在同一组中。然后您可以使用 chmod 更改第一个程序内的权限以允许第二个程序(或该组中的任何用户)修改文件:
my $filename = get_temp_filename();

chmod 0660, $filename;

关于perl - 如何生成随机唯一的临时文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3914090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com