亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言拓展實現Lua sleep函數

2020-01-26 15:07:03
字體:
來源:轉載
供稿:網友

這幾天在做一個小項目,其中用到了一些基本的API, 例如sleep,獲取當前目錄等等,lua標準庫中沒有提供這些接口,雖然所第三方庫中也都有實現,但是要用的就那么幾個函數,在一個嵌入式系統中安裝那么多第三方庫有點浪費資源,于是@勝利哥 寫了一個socket的C實現,然后給我用。我試著把其他幾個函數也用C實現,首先看下怎么用C寫lua的拓展。

C 部分

首先是根據Lua C語言的協議寫好調用模塊,編譯成.so 文件,然后才可以在lua腳本中調用。 下面是在Ubuntu14.04 **系統中,基于lua5.1** 寫的一個sleep實現。

復制代碼 代碼如下:

*sleep.c 文件 *
/*學習寫lua c拓展,對于一些簡單的函數自己提供C拓展
 *ubuntu 編譯 $ gcc -fPIC -shared -llua sleep.c -o orangleliu.so -I/usr/include/lua5.1 -std=gnu99
 */

#include "unistd.h"

/*這個三個是必須的頭文件*/
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"


/*simple sleep*/
static int sleep_c (lua_State *L){
    long secs = lua_tointeger(L, -1); /*獲取參數*/
    sleep(secs);
    return 0;                         /*返回0個值,所以為0*/
}

static const struct luaL_Reg libs[] = {
    {"sleep", sleep_c},
    {NULL, NULL}  /*the end*/
};

int luaopen_orangleliu (lua_State *L){
    /*注冊lib, 上面luaopen_名稱 跟下面注冊的名稱要一致, 還要和編譯的.so文件名一致*/
    luaL_register(L, "orangleliu", libs);
    return 1;
}

編譯

復制代碼 代碼如下:

$ gcc -fPIC -shared -llua sleep.c -o orangleliu.so -I/usr/include/lua5.1 -std=gnu99

lua 調用
復制代碼 代碼如下:

test.lua
require "orangleliu"
print(os.time())
orangleliu.sleep(1)
print(os.time())

調用結果

復制代碼 代碼如下:

$ lua test.lua
1427118862
1427118863

小結

基本的模板就是這樣的,復雜一些就是多個參數和多個返回值。 如果有C基礎,寫起來還是挺快的,不過要是跨平臺處理起來也挺麻煩的。 大家可以在github上搜下別人寫的lua拓展庫,參考下。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产日韩在线看片| 不卡av在线网站| 精品国产乱码久久久久久虫虫漫画| 久久久女女女女999久久| 久久亚洲成人精品| 久久久久免费精品国产| 亚洲国产高清福利视频| 欧美另类极品videosbest最新版本| www.亚洲人.com| 欧美精品电影在线| 91tv亚洲精品香蕉国产一区7ujn| 国产一区二区三区在线观看网站| 欧美成人激情视频免费观看| 亚洲a级在线播放观看| 国产精品嫩草影院一区二区| 一本色道久久综合狠狠躁篇的优点| 亚洲精品98久久久久久中文字幕| 午夜精品久久久久久99热软件| 中文字幕欧美专区| 亚洲欧美日韩图片| 中文字幕精品一区二区精品| 亚洲精品免费在线视频| 国产成人avxxxxx在线看| 97碰在线观看| 欧美有码在线观看| 国产97人人超碰caoprom| 国产精品视频专区| 欧美猛交免费看| 国产第一区电影| 亚洲一区二区三区视频播放| 亚洲第一页在线| 欧美中文在线观看国产| 精品成人久久av| 亚洲欧美在线播放| 日本一本a高清免费不卡| 亚洲精品国产精品久久清纯直播| 高清日韩电视剧大全免费播放在线观看| 91福利视频在线观看| 久久久久久久久久久久久久久久久久av| 国产97在线播放| 国产精品高潮粉嫩av| 国产精品成人一区二区三区吃奶| 欧美激情2020午夜免费观看| 日韩精品中文字幕有码专区| 91久久久久久国产精品| 欧美大尺度电影在线观看| 日韩视频免费大全中文字幕| 欧美激情久久久| 日韩av免费网站| 亚洲人成电影网| 欧美性猛交xxxx免费看| 不卡毛片在线看| 国产脚交av在线一区二区| 91精品综合久久久久久五月天| 国产精品人成电影在线观看| 亚洲性夜色噜噜噜7777| 中文欧美在线视频| 亚洲精品日韩av| 国产免费一区视频观看免费| 在线观看亚洲视频| 国产欧美一区二区| 亚洲免费视频在线观看| 亚洲福利视频二区| 91精品国产高清自在线| 欧美视频一区二区三区…| 米奇精品一区二区三区在线观看| 日韩精品极品毛片系列视频| 国产欧美va欧美va香蕉在线| 欧美日韩国产精品一区二区不卡中文| 欧美性视频在线| 91视频国产高清| 精品国产一区二区三区在线观看| 亚洲欧洲xxxx| 久久久国产精彩视频美女艺术照福利| 国产精品视频yy9099| 精品国产一区二区三区久久狼黑人| 日本韩国欧美精品大片卡二| 国产视频久久网| 中文字幕在线看视频国产欧美在线看完整| 日韩欧美精品网站| 国产剧情日韩欧美| 亚洲人精品午夜在线观看| 日本久久91av| 97久久精品视频| 91免费高清视频| 亚洲国产成人精品久久| 影音先锋欧美在线资源| 国产成+人+综合+亚洲欧洲| 亚洲女同性videos| 欧美成人精品在线播放| 91精品国产综合久久久久久久久| 黑人极品videos精品欧美裸| 国产精品美腿一区在线看| 色综合久久久久久中文网| 国产97在线播放| 欧美性猛交xxxx富婆| 国产999精品久久久影片官网| 欧美精品久久一区二区| 亚洲国产私拍精品国模在线观看| 日韩经典中文字幕在线观看| 大量国产精品视频| 欧美日韩成人免费| 久久国产天堂福利天堂| 亚洲日韩中文字幕在线播放| 亚洲欧美日韩综合| 精品动漫一区二区| 日韩中文理论片| 欧美在线不卡区| 日韩欧美aⅴ综合网站发布| 日韩av中文字幕在线| 日韩有码在线电影| 欧美性猛交xxxx| 97色在线观看免费视频| 欧美日韩亚洲视频一区| 日韩av资源在线播放| 久久99国产精品久久久久久久久| 不卡av电影院| 国产精品永久免费在线| 精品久久香蕉国产线看观看亚洲| 国产精品自产拍在线观| 97色在线观看| 午夜欧美不卡精品aaaaa| 欧美乱大交做爰xxxⅹ性3| 777国产偷窥盗摄精品视频| 色综合久久久888| 国产成人在线亚洲欧美| 久久国内精品一国内精品| 91色中文字幕| 亚洲欧美激情四射在线日| 国产日韩欧美在线视频观看| 欧美激情视频网站| 一级做a爰片久久毛片美女图片| 精品久久久中文| 97碰碰碰免费色视频| 欧美精品成人91久久久久久久| 欧美在线一级视频| 国产视频一区在线| 欧美亚洲国产成人精品| 91最新在线免费观看| 中文字幕无线精品亚洲乱码一区| 国产婷婷成人久久av免费高清| 亚洲亚裔videos黑人hd| 91sa在线看| 欧美精品性视频| www.亚洲人.com| 精品爽片免费看久久| 久久精品视频99| 亚洲精品动漫久久久久| 国产精品久久久久久久久久ktv| 欧美成人免费视频| 日韩欧美大尺度| 欧美人在线视频| 97视频色精品| 在线播放国产一区中文字幕剧情欧美| 久热精品视频在线免费观看| 久久精品亚洲精品| 色婷婷av一区二区三区久久| 精品国产乱码久久久久久虫虫漫画| 亚洲国产成人精品久久久国产成人一区| 国产欧美日韩专区发布| 中文字幕在线亚洲| 韩国v欧美v日本v亚洲| 国产精品色婷婷视频| 亚洲精品动漫100p|