在用C ++编写的嵌入式多线程程序中有许多Lua会话(每个会话由其自己的lua_State表示)。每个Lua会话都有一个专用的"控制台"由C ++对象表示。这个"控制台"旨在提供特定于会话的stdin / stdout / stderr流。
提供这样一个"控制台"的正确方法是什么?到Lua会议?
在这样的控制台上实现标准流重定向的正确方法是什么?
答案 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