LUA > C függvény elérése > sleep(int sec);

Korábban írtam egy bugyuta lua szkriptet, ami a magyarországon található közlekedési lámpa állapotátmeneteit volt hivatott szimulálni. Nagyszerű érzés, hogy nem sikerül a vermet túlcsordítani, de jó lenne, ha kicsit lassabban pörögne. Ekkor jön a képbe a sleep függvény. Mivel nem az ANSI C szabvány része, így natívan nem is tartalmazza a lua.

Kód


#include "lua.h"
#include "lauxlib.h"
#include "lualib.h"

int l_sleep(lua_State *L){

	unsigned int sec = luaL_checknumber(L, 1);
	sleep(sec);
	return 1;
}

static const luaL_reg reg_sleep[] = {
	{"sleep", l_sleep},
	{NULL, NULL} // őrszemek
	}; 
int luaopen_sleep(lua_State *L){
	luaL_register(L, "io", reg_sleep);
	return 1;
}

Fordítás:


cc -o sleep.so -shared sleep.c

Használat:


require "sleep"
io.sleep(2) -- 2 másodpercig vár

Hozzászólások

mindig megnezegetem a LUA-s kodjaidat, maga a nyelv igen erdekes, es nagyon ugyesen ossze lehet gyogyitani a C-vel
de erdekelne, hogy a gyakorlatban mire hasznalod (illetve hasznalod-e egyaltalan valamire)?
arra gondolok, hogy van-e olyan feladat, amit mondjuk LUA-ban allsz neki megirni?

LUA egy érdekes nyelv. Aki szereti a C-t és a szkript nyelveket annak szerintem főnyeremény. A Lua-t önmagában azt hiszem nem sok értelme van használni, sokkal inkább vmilyen alkalmazás (wireshark, mysqlproxy, SciTe) szkriptelésére. De nem vagyok a téma szakértője, hogy a lua-ról érdemben nyilatkozzak.