FileStat

有关文件的信息可以从FileStat类中找到。默认情况下不会打开。

在状态缓冲区中获取有关文件的信息。在参数3指针处设置错误代码。

proc stat: string * &stat_t * ∫

设置文件的访问和修改时间。在参数4指针处设置错误代码。时间以秒为单位,名义上是从纪元(1970年1月1日)开始的。

proc utime: string * double * double * ∫

更改组、所有者等的读、写权限。成功后返回0。在Windows上,此函数可能会静默地执行不受支持的操作。

gen chmod: string * mode_t -> int;

设置后续权限的掩码。在Windows上,此函数可能会静默地执行不受支持的操作。

gen umask: mode_t -> mode_t;

抽象的独立于平台的文件类型分类法。

variant file_type_t =
  | PIPE
  | STREAM
  | DIRECTORY
  | BLOCK
  | REGULAR
  | SYMLINK
  | SOCKET
  | INDETERMINATE
  | NONEXISTANT
  | NOPERMISSION
;

从文件状态缓冲区获取文件类型。

virtual fun file_type: &stat_t -> file_type_t;

用有关文件的信息填充stat缓冲区。

gen stat(file: string, statbuf:&stat_t);

从stat缓冲区获取文件的上次修改时间。时间以秒为单位。

fun mtime: &stat_t -> double = "(double)($1->st_mtime)";

从stat缓冲区获取文件创建时间。注意:在Unix上不可用。时间以秒为单位。

fun ctime: &stat_t -> double = "(double)($1->st_ctime)";

按名称获取文件的修改时间。时间以秒为单位。

fun filetime(f:string):double;

按名称设置文件的上次访问和修改时间。

gen utime(f:string, a:double, m:double): bool;

按名称设置文件的最后访问和修改时间,其中两个时间由单个参数给定。

gen utime(f:string, t:double);

检查文件是否存在。

fun fileexists(f:string):bool=> filetime f != 0.0;

查找文件类型。

fun filetype(f:string):file_type_t;

文件时间转换。

fun past_time () => -1.0;
fun future_time () => double(ulong(-1)); // a hacky way to get a big number

fun strfiletime0 (x:double) :string;
fun strfiletime (x:double) : string;
fun dfiletime(var f:string, dflt:double) : double;