如何在Squirrel-lang中迭代目录内容?

问题描述 投票:0回答:1

我需要使用 Squirrel-lang 来完成大学作业,并且我必须使用线程来计算目录树中的文件数量。我已经控制了脚步,但我一生都找不到任何关于如何用这种语言导航目录的有用信息。到目前为止,我只设法弄清楚我可以使用

将目录作为文件打开(这在 UNIX 系统中有意义)
local currDirr = file(".", "r");

但是 Squirrel 文档对于其文件系统 API 的描述非常模糊,而且我能找到的任何类似问题都已经有 10 多年的历史了,当时 Squirrel 甚至还没有 IO 库。有谁知道我如何遍历这里的文件系统?或者至少为我指出嵌入一些 C/C++ 代码的方向,让我可以通过 Squirrel 的 C API 来完成此操作。

提前致谢

PD:以防万一有人想知道为什么我必须专门使用 Squirrel,作业是用一种与你的名称具有相同数量字母的语言来解决 2 个与线程相关的问题。 Squirrel 是我能找到的最接近通用语言的东西,有 8 个字母,网上有超过 5 个句子与之相关。如果有人知道另一种更适合于此的语言,也欢迎提出建议。

directory filesystems squirrel
1个回答
0
投票

我希望这还不算太晚。您可以在官方存储库中查看该语言的“最小实现”。除此之外,您可以在根表中注册您自己的函数。文档提供了一个示例: SQInteger register_global_func(HSQUIRRELVM v, SQFUNCTION f, const char* fname) { sq_pushroottable(v); sq_pushstring(v, fname, -1); sq_newclosure(v, f, 0); //create a new function sq_newslot(v, -3, SQFalse); sq_pop(v, 1); //pops the root table return 0; } register_global_func(v, myfunc, _SC("myfunc"));

因此您可以注册一个类似于
this

问题中建议的函数。

© www.soinside.com 2019 - 2024. All rights reserved.