【问题标题】:Difference between Cygwin and Command prompt when running an c++ application through command line通过命令行运行 c++ 应用程序时 Cygwin 和命令提示符之间的区别
【发布时间】:2020-07-28 05:45:45
【问题描述】:

我有一个 C++ 应用程序,我尝试使用 Windows 命令提示符运行该应用程序,方法是移至应用程序目录,然后使用一些参数调用 appl.exe。应用程序启动(尚未关闭),但控件返回到命令提示符。 现在,当我在 Cygwin 终端上执行相同操作时,它会等待应用程序退出,然后再放弃控制。

我曾尝试寻找答案,但未能如愿。

你能帮我理解行为上的差异吗?

提前致谢。

【问题讨论】:

标签: c++ command-line cygwin


【解决方案1】:

Windows 中的终端,如 CMD 和 PowerShell 以非阻塞模式启动应用程序(如果我没记错的话,通常称为无头模式。它适用于所有可执行文件)。在您的应用程序运行正常之前,没有什么可麻烦的。

相反,Cygwin 提供了类似 Linux 的功能,因此遵循启动应用程序的阻塞特性。这会导致 Cygwin 终端等待正在运行的应用程序退出以继续工作。

【讨论】:

  • 继续之前的评论:只需添加一个 & 即可将应用程序置于后台。只要启动 bash 处于活动状态,即只要 mintty 窗口打开,它就会运行。
  • @DougHenderson 但这仍然存在 bash 可能被错误关闭的缺点,这反过来又会终止程序。
  • 查看 nohup 命令的文档。或者您可以使用 start 或 cygstart 命令。
  • 感谢大家的回复,但是有没有办法在 windows cmd 提示符下获得类似 cygwin 的行为。
  • @rahulpoddaturi 您可以使用Start-Process -NoNewWindow myFile.exe,但请注意,此命令仅适用于 PowerShell。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-08-13
  • 1970-01-01
  • 2016-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多