젊은이들은 밤중에 태어나서 이튿날 아침 해돋이를 처음 보는 갓난애들 같기 때문에, 어제란 으례 없었던 것처럼 생각하기 쉽다. ―서머셋 모옴
typedef const char * (*lua_Chunkreader) (lua_State *L, void *data, size_t *size); int lua_load (lua_State *L, lua_Chunkreader reader, void *data, const char *chunkname);
루아 청크를 로딩하기위해서는 lua_load()를 사용하면 됩니다.
lua_load()의 반환값은 다음과 같습니다.
- 0 : 오류없음
- LUA_ERRSYNTAX : 컴파일중에 문법오류 발견.
- LUA_ERRMEM : 메모리 할당 오류.
lua_load()는 자동으로 청크가 텍스트 형태인지, 이진 형태인지 여부를 감지하여 알맞게 로딩합니다. (luac 소스를 참조하세요)
lua_load()는 청크를 읽어들이기 위해 사용자 정의 읽기 함수를 사용합니다. 청크의 일부분을 매번 읽어들일 때마다 lua_load()는 이 읽기 함수를 호출합니다. (이때 data 매개변수에 읽어들인 일부분을 넘기게 됩니다. 읽기 함수는 반드시 다음에 읽어들일 새로운 청크 일부분의 포인터를 반환해야하며 size 매개변수에 블럭 크기를 설정해주어야합니다. 청크를 모두 읽어들였다면 읽기 함수에서는 NULL을 반환하면 됩니다. 0보다 크기만 하다면 청크의 일부분을 읽어들이는 크기는 제한이 없습니다.
현재 루아버전에서의 구현에서는 읽기 함수는 어떠한 루아함수도 호출할 수 없습니다. 이것을 보증하기위해서 언제나 L (루아 상태 매개변수)는 NULL이 넘어옵니다.
chunkname 매개변수는 오류메세지와 디버그 정보를 위해 사용됩니다. (메뉴얼 4번 섹션 참조)
lua_load() 사용 예제와 화일과 문자열로부터 청크를 바로 읽어들이기 위한 보조구현 함수들을 알아보려면, 보조 라이브러리 소스(lauxlib.c) 를 참조하시기 바랍니다.









![[http]](/wiki/imgs/http.png)
