lua by written form c

本文介绍了一个使用C语言编写的Lua模块,该模块能够将包含时间戳、CPU使用率、内存使用情况等信息的日志条目写入CSV文件。通过解析传入的时间参数,该模块能以友好的时间格式输出日志。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <math.h>
// extern "C" {
    #include "lua.h"
    #include "lualib.h"
    #include "lauxlib.h"
// };



int c_push_message(lua_State *L){
    double nowtime = luaL_checknumber(L,1);
    double cpu = luaL_checknumber(L,2);
    double mem = luaL_checknumber(L,3);
    double count = luaL_checknumber(L,4);
    FILE *file  = fopen("stress_message.csv","a");
    if(NULL == file){
        printf("failed to open\n");
        return 0;
    }
    // printf("$$$$$$$$$%lf,%lf,%lf,%lf\n",nowtime,cpu,mem,count);
    int s = (int)nowtime%60;
    nowtime=nowtime/60;
    int m = (int)nowtime%60;
    int h =(int)((int)nowtime/60);
    char char_h[9],char_m[3],char_s[3];
    sprintf(char_s,"%d",s);
    sprintf(char_m,"%d",m);
    sprintf(char_h,"%d",h);
    strcat(strcat(strcat(strcat(char_h,":"),char_m),":"),char_s);
    fprintf(file,"%s,%lf,%lf,%lf\n",char_h,cpu,(mem/1024),count);
    fclose(file);
    return 0;
}
int luaopen_pushmessage(lua_State *L){
    luaL_Reg pushmessage [] = {
        {"pushmessage",c_push_message},
        {NULL,NULL}
    };
    luaL_checkversion(L);
    luaL_newlib(L,pushmessage);
    return 1;
}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值