Nim:包含Posix的C头

Jör*_*chs 1 nim-lang

我正在尝试使用Nim Posix库,特别是文件系统统计信息:

http://nim-lang.org/docs/posix.html#Stat

从我对其他Nim模块的测试中,导入和使用应该像这样工作:

import posix

var stats: Stat
stat("/", stats)
echo stats.st_blksize
Run Code Online (Sandbox Code Playgroud)

但编译器给了我一个

Error: undeclared identifier: 'Stat'
Run Code Online (Sandbox Code Playgroud)

编译时是否需要添加一些手动包含,或者我是否遗漏了导入的内容?

Grz*_*icz 5

您可能会将这些行放入名为的文件中posix.nim.这是一个问题,因为nim编译器将看到posix模块已经导入,并且不会在标准库中查找任何其他模块.解决方案是将程序重命名为po.nim其他内容.

一旦你通过这个不幸的行为,你会发现代码没有编译,因为statproc返回一个cint你没有分配给任何东西:

po.nim(4, 4) Error: value of type 'cint' has to be discarded
Run Code Online (Sandbox Code Playgroud)

您可以丢弃该值.以下修改版本在nimrod编译器的稳定版本0.9.4上编译并运行:

import posix

var stats: Stat
discard stat("/", stats)
echo stats.st_blksize
Run Code Online (Sandbox Code Playgroud)