Получение статуса возврата И вывода программы

Мне нужно использовать Lua для запуска двоичной программы, которая может что-то записывать в свой стандартный вывод, а также возвращает код состояния (также известный как « exit статус ").

Я поискал в Интернете и не нашел то, что мне нужно. Однако я обнаружил, что в Lua:

  • os.execute () возвращает код состояния
  • io.popen () возвращает обработчик файла, который можно использовать для чтения вывода процесса

Однако Мне нужно и то, и другое. Написание функции-оболочки, которая запускает обе функции за сценой, не является вариантом из-за накладных расходов процесса и, возможно, изменения результата при последовательных запусках. Мне нужно написать такую ​​функцию:

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

Кто-нибудь знает, как можно решить эту проблему?

PS. целевая система звенит Linux.

10
задан AlexStack 30 September 2011 в 08:10
поделиться