我需要使用 Squirrel-lang 来完成大学作业,并且我必须使用线程来计算目录树中的文件数量。我已经控制了脚步,但我一生都找不到任何关于如何用这种语言导航目录的有用信息。到目前为止,我只设法弄清楚我可以使用
将目录作为文件打开(这在 UNIX 系统中有意义)local currDirr = file(".", "r");
但是 Squirrel 文档对于其文件系统 API 的描述非常模糊,而且我能找到的任何类似问题都已经有 10 多年的历史了,当时 Squirrel 甚至还没有 IO 库。有谁知道我如何遍历这里的文件系统?或者至少为我指出嵌入一些 C/C++ 代码的方向,让我可以通过 Squirrel 的 C API 来完成此操作。
提前致谢
PD:以防万一有人想知道为什么我必须专门使用 Squirrel,作业是用一种与你的名称具有相同数量字母的语言来解决 2 个与线程相关的问题。 Squirrel 是我能找到的最接近通用语言的东西,有 8 个字母,网上有超过 5 个句子与之相关。如果有人知道另一种更适合于此的语言,也欢迎提出建议。
我希望这还不算太晚。您可以在官方存储库中查看该语言的“最小实现”。除此之外,您可以在根表中注册您自己的函数。文档提供了一个示例:
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