我有一个主程序(用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) 我正在寻找一种方法来实现一个在lua5.3中具有可变参数的函数.
我希望有这样的事情
function add(...)
local sum=arg + ...
return sum
end
stat,err=pcall(add,...)
Run Code Online (Sandbox Code Playgroud)
谢谢
我被告知每个STM32F103RET设备都带有一个唯一的设备ID.如果检索ID的过程是什么?我正在运行一个系统,其中我与多个STM borads进行通信.为了区分每个STM板,我可以使用这个唯一的Id.谢谢
我有这种情况,我需要逃避一个角色.我想形成一个缓冲区
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)
但这不是必需的.我怎样才能达到预期的效果?