如何通过Lua获取程序返回状态及输出结果?

2026-04-01 19:191阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计336个文字,预计阅读时间需要2分钟。

如何通过Lua获取程序返回状态及输出结果?

我需要用Lua来运行一个二进制程序,它可以在stdout中输出一些信息,并返回一个状态码(也称exit status)。我在网上搜索,找不到能满足我需求的信息。但是,我发现Lua中的`os.execute()`函数可以实现这个功能。

我需要使用Lua来运行一个二进制程序,它可以在stdout中写入一些东西,并返回一个状态代码(也称为“ exit status”).

我在网上搜索,找不到能满足我需求的东西.但是我发现在Lua:

> os.execute()返回状态代码
> io.popen()返回可用于读取进程输出的文件处理程序

但是,我需要两者.编写一个在场景后面运行两个函数的包装函数不是一个选项,因为进程开销和连续运行时结果可能会发生变化.我需要写一个这样的函数:

如何通过Lua获取程序返回状态及输出结果?

function run(binpath) ... return output,exitcode end

有谁知道如何解决这个问题?

PS.目标系统响了Linux.

使用LUA 5.2我可以执行以下操作并且它可以工作

-- This will open the file local file = io.popen('dmesg') -- This will read all of the output, as always local output = file:read('*all') -- This will get a table with some return stuff -- rc[1] will be true, false or nil -- rc[3] will be the signal local rc = {file:close()}

希望这可以帮助…

本文共计336个文字,预计阅读时间需要2分钟。

如何通过Lua获取程序返回状态及输出结果?

我需要用Lua来运行一个二进制程序,它可以在stdout中输出一些信息,并返回一个状态码(也称exit status)。我在网上搜索,找不到能满足我需求的信息。但是,我发现Lua中的`os.execute()`函数可以实现这个功能。

我需要使用Lua来运行一个二进制程序,它可以在stdout中写入一些东西,并返回一个状态代码(也称为“ exit status”).

我在网上搜索,找不到能满足我需求的东西.但是我发现在Lua:

> os.execute()返回状态代码
> io.popen()返回可用于读取进程输出的文件处理程序

但是,我需要两者.编写一个在场景后面运行两个函数的包装函数不是一个选项,因为进程开销和连续运行时结果可能会发生变化.我需要写一个这样的函数:

如何通过Lua获取程序返回状态及输出结果?

function run(binpath) ... return output,exitcode end

有谁知道如何解决这个问题?

PS.目标系统响了Linux.

使用LUA 5.2我可以执行以下操作并且它可以工作

-- This will open the file local file = io.popen('dmesg') -- This will read all of the output, as always local output = file:read('*all') -- This will get a table with some return stuff -- rc[1] will be true, false or nil -- rc[3] will be the signal local rc = {file:close()}

希望这可以帮助…