如何在系统verilog中找出文件的存在

时间:2017-09-06 13:48:10

标签: unix system verilog system-verilog uvm

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

感谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

通过$ system调用使用Unix实用程序“ test”(请参阅​​“ man test”)可以完成此任务。也可以使用stat()函数通过直接C来完成(更麻烦)。这个例子可以用来做你想做的事。在这种情况下,它会检查目录是否存在并且找不到目录,然后尝试创建它。

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