C++;:如何在不向shell传递命令的情况下执行文件? < >我在C++中发现,我可以使用PONEN()方法运行命令并打开流,以便从输入和输出中读取。 这适用于我使用它的目的,但它向shell传递命令以执行此操作让我感到不安
我想知道的是,给定文件的位置,是否可以执行可执行文件。然后我需要能够读取程序的输出。我可以在不向shell传递命令的情况下执行此操作吗 我只是担心不同shell之间的兼容性。如果我在设计程序时假设BASH环境,那么如果它使用Bourne Shell或CSH运行,会不会导致功能失调,或者我只是想得太多了?执行任何程序都是特定的(几乎是根据操作系统的定义)。阅读免费下载的更多信息 您可能只关心特定的操作系统,如Linux(或操作系统类)。然后,我建议关注POSIX系统,并使用原语,如或后跟某些原语等。这些原语给出了很好的解释,并且可以免费下载C++;:如何在不向shell传递命令的情况下执行文件? < >我在C++中发现,我可以使用PONEN()方法运行命令并打开流,以便从输入和输出中读取。 这适用于我使用它的目的,但它向shell传递命令以执行此操作让我感到不安,c++,C++,我想知道的是,给定文件的位置,是否可以执行可执行文件。然后我需要能够读取程序的输出。我可以在不向shell传递命令的情况下执行此操作吗 我只是担心不同shell之间的兼容性。如果我在设计程序时假设BASH环境,那么如果它使用Bourne Shell或CSH运行,会不会导致功能失调,或者我只是想得太多了?执行任何程序都是特定的(几乎是根据操作系统的定义)。阅读免费下载的更多信息 您可能只关心特定的操作系统,如Linux(或操作系统类)。然后,我建议关注POSIX系统,并使用原语,如或后跟某些原语等
或者您可以使用一些框架库,如或等等。。。两者都提供了抽象,以某种操作系统“中立”的方式运行程序(对于它们支持的少数常见操作系统,如Linux、Windows、MacOSX)。除了非常无用的std::system()之外,没有任何可移植的方式来执行程序。有很多特定于操作系统的方法可以做到这一点。请使用
exec
函数之一。如果您希望原始程序继续执行,请结合fork
。谢谢Jesper和Douglas。exec和fork命令正是我想要的。我一定会考虑在我的应用程序中使用它们和管道谢谢,这很好地回答了我的问题。