[-0, +1, m]
void luaL_where (lua_State *L, int lvl);
Pushes onto the stack a string identifying the current position
of the control at level
lvl in the call stack.
Typically this string has the following format:
Level 0 is the running function,
level 1 is the function that called the running function,
This function is used to build a prefix for error messages.
The standard Lua libraries provide useful functions
that are implemented directly through the C API.
Some of these functions provide essential services to the language
others provide access to "outside" services (e.g., I/O);
and others could be implemented in Lua itself,
but are quite useful or have critical performance requirements that
deserve an implementation in C (e.g.,
All libraries are implemented through the official C API
and are provided as separate C modules.
Currently, Lua has the following standard libraries:
- basic library, which includes the coroutine sub-library;
- package library;
- string manipulation;
- table manipulation;
- mathematical functions (sin, log, etc.);
- input and output;
- operating system facilities;
- debug facilities.
Except for the basic and package libraries,
each library provides all its functions as fields of a global table
or as methods of its objects.
To have access to these libraries,
the C host program should call the
which opens all standard libraries.
it can open them individually by calling
luaopen_base (for the basic library),
luaopen_package (for the package library),
luaopen_string (for the string library),
luaopen_table (for the table library),
luaopen_math (for the mathematical library),
luaopen_io (for the I/O library),
luaopen_os (for the Operating System library),
luaopen_debug (for the debug library).
These functions are declared in
and should not be called directly:
you must call them like any other Lua C function,
e.g., by using