Lua与专用"游戏机"在多线程环境中

时间:2015-05-25 07:42:26

标签: multithreading lua

在用C ++编写的嵌入式多线程程序中有许多Lua会话(每个会话由其自己的lua_State表示)。每个Lua会话都有一个专用的"控制台"由C ++对象表示。这个"控制台"旨在提供特定于会话的stdin / stdout / stderr流。

提供这样一个"控制台"的正确方法是什么?到Lua会议?
在这样的控制台上实现标准流重定向的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用

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