Кроссплатформенный способ запустить процесс и перенаправить его stdio

Я хотел бы знать, есть ли кроссплатформенная (Windows, Linux, BSD) библиотека, с помощью которой я мог бы запускать процесс асинхронно и иметь iostream-подобные обертки для его стандартных пайпов.

Я хотел бы, чтобы он мог сказать, когда процесс завершился.

Спасибо.


person Community    schedule 04.07.2012    source источник


Ответы (1)


Есть 2 библиотеки, которые вы можете использовать:

QProcess

Вы можете использовать класс QProcess из набора инструментов Qt. Дополнительную информацию можно найти в этом вопросе о стеке overflow и библиотека qt.

libexecstream

Эта библиотека легче, чем Qt, и является кроссплатформенной.

Другое

  • pstreams выпуска 0.17
    #P7#
person hamed    schedule 04.07.2012
comment
Спасибо за предложение, но, поскольку я еще не использую Qt в своем проекте, я хотел бы что-то более легкое. - person ; 04.07.2012
comment
вы использовали system? Я думаю, что это кроссплатформенный. - person hamed; 04.07.2012
comment
Да, в настоящее время я использую system(), но это блокирующий вызов, и AFAIK не включает перенаправление ввода/вывода. - person ; 04.07.2012
comment
Выглядит здорово, но, если я правильно понимаю, все они специфичны для POSIX. Я хочу, чтобы он работал и на Win32 (без Cygwin). - person ; 04.07.2012
comment
Часто задаваемые вопросы по pstreams отмечают, что вы можете использовать libexecstream, который является кросс-платформенным. - person hamed; 04.07.2012
comment
@Tibor Может быть, вы можете обучить Windows Posix. - person nwp; 18.06.2015