小编bis*_*nux的帖子

从C更改lua变量

我有一个主程序(用C语言编写),需要分支到lua_thread(主程序继续运行).lua_thread调用lua_script.lua。这个lua_script包含一个while循环。一个lua变量控制while循环,目前这个循环永远运行。

lua_script.lua

  --this loop runs forever, as the exit value is not set yet
  a=0
    while(a<=0)
    do
       print("value of a:", a)
    end
Run Code Online (Sandbox Code Playgroud)

我的目标是从主程序更改lua变量(a),使其退出此无限循环。一旦该循环结束,它将退出线程并返回到主程序。

main.c

#include <lua.h>
#include <lauxlib.h>
#include <stdlib.h>
#include <stdio.h>
#include <pthread.h>
void *lua_thread()
 {
    int status, result;
    double sum;
    lua_State *L;

    L = luaL_newstate();
    luaL_openlibs(L); 

    status = luaL_loadfile(L, "lua_script.lua");
    if (status)
    {
        fprintf(stderr, "Couldn't load file: %s\n", lua_tostring(L, -1));
        exit(1);
    }

result = lua_pcall(L, 0, 0, 0);
    if (result) {
        fprintf(stderr, "Failed to run script: %s\n", lua_tostring(L, …
Run Code Online (Sandbox Code Playgroud)

c lua pthreads

5
推荐指数
1
解决办法
557
查看次数

在lua中使用变量参数的pcall

我正在寻找一种方法来实现一个在lua5.3中具有可变参数的函数.

我希望有这样的事情

function add(...)
local sum=arg + ...
return sum
end

stat,err=pcall(add,...)
Run Code Online (Sandbox Code Playgroud)

谢谢

lua

4
推荐指数
1
解决办法
3970
查看次数

如何查找STM32F103RET的设备ID

我被告知每个STM32F103RET设备都带有一个唯一的设备ID.如果检索ID的过程是什么?我正在运行一个系统,其中我与多个STM borads进行通信.为了区分每个STM板,我可以使用这个唯一的Id.谢谢

stm32 libopencm3

2
推荐指数
1
解决办法
8327
查看次数

如何逃避一个角色

我有这种情况,我需要逃避一个角色.我想形成一个缓冲区

char buffer[1024]; 
char* x="hello";
char* y="world";
sprintf(buffer,"=%s\n-%s\n ",x,y);
Run Code Online (Sandbox Code Playgroud)

我的目标是获得一个缓冲区,如

=hello\n-world\n
Run Code Online (Sandbox Code Playgroud)

按照这个确切的顺序.当缓冲区传递给函数时,诸如(=,\n, - )之间的符号都会执行特定操作.

但是,如果打印出的代码如上面的代码所示,我得到了

=hello
-world
Run Code Online (Sandbox Code Playgroud)

代替

=hello\n-world\n
Run Code Online (Sandbox Code Playgroud)

但这不是必需的.我怎样才能达到预期的效果?

c string-formatting

1
推荐指数
1
解决办法
115
查看次数

标签 统计

c ×2

lua ×2

libopencm3 ×1

pthreads ×1

stm32 ×1

string-formatting ×1