加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

lua – 获取返回状态和程序输出

发布时间:2020-12-15 00:25:22 所属栏目:大数据 来源:网络整理
导读:我需要使用Lua来运行一个二进制程序,它可以在stdout中写入一些东西,并返回一个状态代码(也称为“ exit status”). 我在网上搜索,找不到能满足我需求的东西.但是我发现在Lua: os.execute() 返回状态代码 io.popen() 返回可用于读取进程输出的文件处理程序 但
我需要使用Lua来运行一个二进制程序,它可以在stdout中写入一些东西,并返回一个状态代码(也称为“ exit status”).

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

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

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

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()}

希望这可以帮助…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读