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;