在用 C++ 编写的嵌入式多线程程序中,有许多 Lua session (每个 session 由其自己的 lua_State 表示)。每个 Lua session 都有一个由 C++ 对象表示的专用“控制台”。此“控制台”旨在提供特定于 session 的标准输入/标准输出/标准错误流。
将这样的“控制台”传递给 Lua session 的正确方法是什么?
将标准流重定向到此类控制台或从此类控制台重定向的正确方法是什么?
最佳答案
您可以使用
将userdata
插入io.stdin
/stdout
/stderr
lua_getglobal(L, "io");
lua_pushlightuserdata(L, …); // or whatever value you want here
lua_setfield(L, 0, "stdin");
// rinse, repeat for stdout and stderr
关于multithreading - 在多线程环境中使用专用 "consoles"的 Lua session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30433412/