使用 C++ 从线程启动应用程序
我需要在线程内启动第 3 方程序,等待使用 C++ 从 stdout/stderr 获取结果。
- 有哪些方法可用?
- 它们是跨平台的吗?我的意思是,我可以将它们同时用于 cl/gcc 吗?
I need to launch a 3rd party program inside a thread, wait to get the results both from stdout/stderr with C++.
- What methods are available?
- Are they cross-platform? I mean, can I use them both for cl/gcc?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
:
http://linux.die.net/man/3/execl
在 Unix上 Windows:
http://msdn.microsoft.com /en-us/library/ms682425%28v=vs.85%29.aspx
On Unix:
http://linux.die.net/man/3/execl
On Windows:
http://msdn.microsoft.com/en-us/library/ms682425%28v=vs.85%29.aspx
系统应该是平台独立的,但如果担心使用相同的安全权限运行程序,您可能希望坚持使用 createprocess (win)/ exec (other)。
system should be platform independant, but you might want to stick with createprocess (win)/ exec (others) if there is a concern about running the program with the same security privledges.
有一组 posix 函数可以启动外部可执行文件 - 请参阅 exec - 其中是跨平台的。要在 Windows 上执行某些特定任务,您可能需要使用特定于 Windows 的 创建进程。
这些通常会阻塞,因此您必须在新线程中启动它们。线程通常不是跨平台的,尽管您可以在 Windows 上使用 posix (pthreads)。
另一种方法是使用诸如 Qt 或 wxWidgets 跨平台库之类的东西。
There is a set of posix functions to launch an external executable - see exec - which are cross platform. To do some specific tasks on windows you may need to use windows specific createprocess.
These generally block so you would have to start them in a new thread. Threading is generally not cross platform, although you can use posix (pthreads) on windows.
An alternative is to use somthing like Qt or wxWidgets cross platform libraries.