我在日志目录中有一个文件 abc/xyz.log。如何确定文件是否存在于 SystemVerilog 类中?如果该文件存在,我想删除该文件。
您可以使用
$fopen
,如果不存在则返回0。如果确实存在,请$fclose
该文件,然后使用$system("shell command")
将其删除。
通过
$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