如何防止Lua在RTOS中使用stdio或重定向stdio

我正在尝试在 ARM9 CPU 上将 Lua 移植到 ucos。Lua 源代码在许多地方使用了标准输入输出库,然而,在我的硬件上没有为 stdin/stdout 等留下 UART,更糟糕的是,如果使用 stdio,则 ADS 的编译使用 semihosting。

因此,我想要避免在 Lua 中使用 stdio,或者只是将 stdio 重定向到内存中的某个缓冲区!

我应该如何实现这个功能?

点赞
用户1887599
用户1887599

Lua 中唯一使用 stdio 的部分是 io 库和捆绑的解释器。您可以选择不包含 io 库并提供自己的接口,或适当地对其进行修补。您可能还需要重写在基本库集中的 print 函数。

2012-12-10 10:00:41
用户204011
用户204011

你可以使用 io.input / io.output 来重定向标准输入和标准输出。你还需要重新实现 print 函数以便使用 io.write

2012-12-10 14:22:41