似乎在Common Lisp中没有标准函数可以使用/ free / total of Disk space。
Linux / Mac中有statvfs.h,Windows中有适用于C / C ++的GetDiskFreeSpaceEx函数。
答案 0 :(得分:2)
就个人而言,它会调用可执行文件来使用库来执行此操作。
例如,使用IOLib调用df -h
。
但这不是可移植的(特别是IOLib,但还有其他库),你必须解析命令的输出。
这就是我喜欢具有“机器可读”输出的程序的一个原因:你可以通过编程方式粘贴它们(例如shell脚本)。
另一种方法是实际调用这些c函数,使用cffi或uffi(ffi代表外部函数接口),但我没有使用过,所以我不能说太多。
哦,在quickdocs.org上搜索,可能有一个库正是为了这个,或者只是为了访问操作系统的API。
答案 1 :(得分:0)
我使用statvfs编写了一个新项目cl-diskspace,以获取Common Lisp中的磁盘总数/可用/可用空间。支持Mac / Linux / Windows。
更新:2015-07-11现在支持Windows!感谢pjb,Guthur,Fare,| 3b |
$ git clone https://github.com/muyinliu/cl-diskspace.git
$ cp -r cl-diskspace ~/quicklisp/local-projects/
(ql:quickload 'cl-diskspace)
(diskspace:disk-space "/")
会得到这样的东西:
127175917568
16509661184
16247517184
意味着总空间为118.44G,可用空间为15.38G,可用空间为15.13G
(diskspace:disk-total-space "/")
会得到这样的东西:
127175917568
(diskspace:disk-free-space "/")
会得到这样的东西:
16509661184
(diskspace:disk-available-space "/")
会得到这样的东西:
16247517184