如何在SystemVerilog中查找文件是否存在?

问题描述 投票:0回答:2

我在日志目录中有一个文件 abc/xyz.log。如何确定文件是否存在于 SystemVerilog 类中?如果该文件存在,我想删除该文件。

unix verilog system-verilog
2个回答
2
投票

您可以使用

$fopen
,如果不存在则返回0。如果确实存在,请
$fclose
该文件,然后使用
$system("shell command")
将其删除。


1
投票

通过

$system
调用使用 Unix 实用程序“test”(请参阅“man test”)可以完成这项工作。也可以通过直接 C 使用 stat() 函数来完成(更麻烦)。 可以利用这个例子来做你想做的事。在这种情况下,它会检查目录是否存在,如果未找到,则尝试创建它。

string report_dir;
report_dir  = {SIM_ROOT,"/",PROJ_NAME,"/",TECH_PROCESS,"/",LOGNAME,"/doc/functional"};
if ($system($sformatf("/usr/bin/test -d %s", report_dir)) != 0) begin
     $display("INFO: creating output directory %s", report_dir);
     if($system($sformatf("mkdir -p %s", report_dir)) != 0) begin
        $display("ERROR: mkdir -p %s returned an error", report_dir);
        $fatal(0);
     end
end
if($system($sformatf("/usr/bin/test -d %s -o -w %s", report_dir, report_dir)) != 0) begin
     $display("ERROR: output directory %s does not exist or is not writeable", report_dir);
     $fatal(0);
end
© www.soinside.com 2019 - 2024. All rights reserved.