Unix 在ocaml(linux)中以亚秒精度获取文件的mtime
Ocaml的Unix 在ocaml(linux)中以亚秒精度获取文件的mtime,unix,ocaml,filemtime,Unix,Ocaml,Filemtime,Ocaml的Unix模块提供了一个stat函数,它返回一个带有floatst_mtime成员的记录 这似乎总是二级精度,即使在支持亚秒精度的Linux上也是如此。事实上,它是一个浮点,而不是一个整数,这让我有希望从中得到一个亚秒级的精确时间(或者类似的时间),但我不知道怎么做 我很乐意使用额外的OPAM库。我已经在使用电池了,所以我不想再使用Jane Street Core之类的东西了,但小型的库也可以 这是我用来测试的脚本: #!/usr/bin/env ocamlscript Ocaml.p
Unix
模块提供了一个stat
函数,它返回一个带有floatst_mtime
成员的记录
这似乎总是二级精度,即使在支持亚秒精度的Linux上也是如此。事实上,它是一个浮点,而不是一个整数,这让我有希望从中得到一个亚秒级的精确时间(或者类似的时间),但我不知道怎么做
我很乐意使用额外的OPAM库。我已经在使用电池了,所以我不想再使用Jane Street Core之类的东西了,但小型的库也可以
这是我用来测试的脚本:
#!/usr/bin/env ocamlscript
Ocaml.packs := ["unix"]
--
open Unix
open Printf
let () =
let this_file = Array.get Sys.argv 0 in
let stats = Unix.stat this_file in
printf "mtime: %f" stats.st_mtime
在我的Linux(x86_64)计算机上运行时,它会打印:
mtime: 1388567583.000000
Python在获得一个亚秒的
mtime
上没有问题,因此我的操作系统和FS肯定支持它。可以在Inria的代码库的底部看到Unix.stat
的实现。如您所见,可移植秒精度时间值直接转换为双倍,忽略了struct stat
中可用的较新纳秒精度值
请考虑提交错误报告,以便改进。< /P> 同时,如果您迫切需要此功能,而且迫不及待,您可以编写自己的改进版
stat\u ext
,返回次秒时间戳。当然,除非有很大的需要,否则最好避免重新实现stdlib