Warning: this is an htmlized version!
The original is here, and
the conversion rules are here.
/*
 * The "loadlib" function for Lua 4.0,
 * inspired by rborges' work:
 *   (find-shttpw3 "www.tecgraf.puc-rio.br/~rborges/loadlib/")
 *
 * This file must be installed as <luasrcdir>/src/lib/lloadlib.c, and
 * some files have to be patched to make it be included in lualib;
 * see: (find-es "lua" "loadlib-patch")
 * and: (find-angg "LUA/loadlib/loadlib.patch")
 *
 * If the Elisp hyperlinks above make no sense to you then please
 * access the htmlized version of this file at:
 *   http://angg.twu.net/LUA/loadlib/lloadlib.c.html
 *
 * Written by Eduardo Ochs <http://angg.twu.net/>; version 2001feb25. 
 * Public domain.
 */

#include <lualib.h>
#include <lauxlib.h>
#include <dlfcn.h>

static int loadlib(lua_State *L) {
  void *libptr;
  lua_CFunction f;
  libptr=dlopen(lua_tostring(L, 1), RTLD_LAZY);
  if (libptr==0)
    luaL_argerror(L, 1, "dlopen cannot open shared library");
  else {
    f=dlsym(libptr, lua_tostring(L, 2));
    if (f==0)
      luaL_argerror(L, 2, "dlsym cannot find init function");
    else
      f(L);
  }
  return 0;
}

LUALIB_API void lua_loadlib_open(lua_State *L) {
  lua_register(L, "loadlib", loadlib);
}