我有一個運行嵌入式Lua的c程序。截至目前,這只是一個你好的世界。但在繼續之前,我希望能夠將lua輸出發送到除stdout
以外的其他位置,以便我可以以某種方式操縱它。這裏是我的代碼:發送lua輸出到非標準輸出
#include <stdio.h>
#include <lua.h>
#include <lauxlib.h>
#include <lualib.h>
int main() {
lua_State *luaVM = luaL_newstate();
//char result[1024];
if (luaVM == NULL) {
printf("Error initializing lua!\n");
return -1;
}
luaL_openlibs(luaVM);
luaL_dostring(luaVM, "print(\"hello world!\")");
//Somehow put the output into result
//printf("%s\n%s\n", result, result);
lua_close(luaVM);
return 0;
}
比如我想使用result
,在評論中看到的,打印的Lua代碼的結果的兩倍。這可以做到嗎?
我已經完成了過去。你需要修補Lua來達到這個目的。你使用什麼版本?我的補丁適用於Lua 5.1,但我也可以將它移植到5.2。 – 2012-08-09 14:57:51
我正在使用5.2。這真的不可能作爲C API中的一個選項嗎? – ewok 2012-08-09 15:03:16
除了完全重新編寫'stdout',我更願意避免使用 – ewok 2012-08-09 15:03:47