svlib- querying properties of files

文件属性的结构体定义

针对文件的属性,svlib定义了一些结构体去对文件属性进行描述,如以下所示:

typedef struct packed {
  bit r;//读
  bit w;//写
  bit x;//执行
} sys_fileRWX_s;//文件的读写执行属性

typedef struct packed {
  bit          setUID;//设置文件owner的uid
  bit          setGID;//设置文件owner的gid
  bit          sticky;//设置other的属性
  sys_fileRWX_s owner;//文件所属者对文件的读写执行属性
  sys_fileRWX_s group;//文件所属者所在组内其他成员对文件的读写执行属性
  sys_fileRWX_s others;//组外其他成员对文件的读写执行属性
} sys_filePermissions_s;//文件所属的成员允许读写执行属性

typedef enum bit [3:0] {
  fTypeFifo    = 4'h1,//fifo设备
  fTypeCharDev = 4'h2,//一次性读取装置
  fTypeDir     = 4'h4,//目录
  fTypeBlkDev  = 4'h6,//可随机存取装置
  fTypeFile    = 4'h8,//文件
  fTypeSymLink = 4'hA,//软连接,不是硬连接,对软硬链接不了解的可以看以下链接,https://blog.csdn.net/qq_22310551/article/details/129267947
  fTypeSocket  = 4'hC//socket文件,与通信相关,感兴趣的可以看以下链接,https://blog.csdn.net/m0_38033199/article/details/127916745
} sys_fileType_enum;//文件类型

typedef struct packed {
  sys_fileType_enum     fType;
  sys_filePermissions_s fPermissions;
} sys_fileMode_s;

typedef struct {
  longint       mtime;//文件的内容上一次被修改的时间
  longint       atime;//文件上一次被访问的时间
  longint       ctime;//文件的权限,owner,group或者内容上一次被修改的时间
  longint       size;//文件的size,byte
  int unsigned  uid;//user id of file owner
  int unsigned  gid;//group id of file's group
  sys_fileMode_s mode;
} sys_fileStat_s

属性查询函数

在svlib中存在一些package中的函数(不必通过类的实例化去调用,可直接通过函数名调用)去用于查询文件的一些属性。

function automatic longint file_mTime(string path, bit asLink=0);//返回file_mtime

function automatic longint file_aTime(string path, bit asLink=0);//返回file_atime

function automatic longint file_cTime(string path, bit asLink=0);//返回file_ctime

function automatic longint file_size(string path, bit asLink=0);//返回file_size,以byte为单位

function automatic sys_fileMode_s file_mode(string path, bit asLink=0);//返回文件类型以及权限

function automatic bit file_accessible(string path, sys_fileRWX_s mode = 0);//文件是否可以以指定的形式访问

如果path指定的路径不存在,则函数返回0,且会抛出错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值