사용자 도구

사이트 도구


kb:luaauxapicode

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

kb:luaauxapicode [2014/11/07 10:00] (현재)
줄 1: 줄 1:
 +====== LuaAuxApi/​Code ======
 +코드 로드 및 실행
 +
 +
 +===== luaL_loadfile =====
 +<code cpp>
 +int luaL_loadfile (lua_State *L, const char *filename);
 +</​code>​
 +주어진 이름의 파일을 로드해서 청크를 생성한다. 파일 이름을 NULL로 주면 표준 입력(stdin)을 사용한다.
 +
 +내부적으로 lua_load 함수를 사용하기 때문에, 무사히 파싱이 끝난 경우에는 파싱한 청크를 스택에다 푸쉬하고,​ 0을 반환한다. 뭔가 에러가 생긴 경우에는 0이 아닌 값을 반환하고,​ 스택에다 에러 메시지를 푸쉬한다.
 +
 +
 +===== luaL_loadbuffer =====
 +<code cpp>
 +int luaL_loadbuffer (lua_State *L, const char *buff, size_t sz, const char *name);
 +</​code>​
 +주어진 이름의 문자열을 파싱해서,​ 청크를 생성한다. buff는 파싱할 문자열, sz는 문자열의 길이, name은 디버깅을 위한 청크의 이름이다.
 +
 +내부적으로 lua_load 함수를 사용하기 때문에, 무사히 파싱이 끝난 경우에는 파싱한 청크를 스택에다 푸쉬하고,​ 0을 반환한다. 뭔가 에러가 생긴 경우에는 0이 아닌 값을 반환하고,​ 스택에다 에러 메시지를 푸쉬한다.
 +
 +
 +===== lua_dofile =====
 +<code cpp>
 +int lua_dofile (lua_State *L, const char *filename);
 +</​code>​
 +luaL_loadfile 함수와 lua_pcall 함수를 이용해, 주어진 파일을 로드해서 실행한다. 무사히 실행한 경우에는 0을 반환하고,​ 뭔가 에러가 생긴 경우에는 0이 아닌 값을 반환한다.
 +
 +
 +===== lua_dobuffer =====
 +<code cpp>
 +int lua_dobuffer (lua_State *L, const char *buff, size_t sz, const char *n);
 +</​code>​
 +luaL_loadbuffer 함수와 lua_pcall 함수를 이용해, 주어진 문자열을 로드해서 실행한다. 무사히 실행한 경우에는 0을 반환하고,​ 뭔가 에러가 생긴 경우에는 0이 아닌 값을 반환한다.
 +
 +
 +===== lua_dostring =====
 +<code cpp>
 +int lua_dostring (lua_State *L, const char *str)
 +</​code>​
 +0으로 끝나는 C 문자열을 인수로 받아, lua_dobuffer 함수를 호출한다. 디버깅을 위한 이름은 C 문자열 자체가 된다.
 +<code cpp>
 +int lua_dostring (lua_State *L, const char *str) {
 +    return lua_dobuffer(L,​ str, strlen(str),​ str);
 +}
 +</​code>​
 +lua_dobuffer 함수를 호출할 뿐이므로 당연히 무사히 실행한 경우에는 0을 반환하고,​ 뭔가 에러가 생긴 경우에는 0이 아닌 값을 반환한다.
 +
 +----
 +  * see also [[LuaAuxApi]]
  
kb/luaauxapicode.txt · 마지막으로 수정됨: 2014/11/07 10:00 (바깥 편집)