Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/160.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;:如何在不向shell传递命令的情况下执行文件? < >我在C++中发现,我可以使用PONEN()方法运行命令并打开流,以便从输入和输出中读取。 这适用于我使用它的目的,但它向shell传递命令以执行此操作让我感到不安_C++ - Fatal编程技术网

C++;:如何在不向shell传递命令的情况下执行文件? < >我在C++中发现,我可以使用PONEN()方法运行命令并打开流,以便从输入和输出中读取。 这适用于我使用它的目的,但它向shell传递命令以执行此操作让我感到不安

C++;:如何在不向shell传递命令的情况下执行文件? < >我在C++中发现,我可以使用PONEN()方法运行命令并打开流,以便从输入和输出中读取。 这适用于我使用它的目的,但它向shell传递命令以执行此操作让我感到不安,c++,C++,我想知道的是,给定文件的位置,是否可以执行可执行文件。然后我需要能够读取程序的输出。我可以在不向shell传递命令的情况下执行此操作吗 我只是担心不同shell之间的兼容性。如果我在设计程序时假设BASH环境,那么如果它使用Bourne Shell或CSH运行,会不会导致功能失调,或者我只是想得太多了?执行任何程序都是特定的(几乎是根据操作系统的定义)。阅读免费下载的更多信息 您可能只关心特定的操作系统,如Linux(或操作系统类)。然后,我建议关注POSIX系统,并使用原语,如或后跟某些原语等

我想知道的是,给定文件的位置,是否可以执行可执行文件。然后我需要能够读取程序的输出。我可以在不向shell传递命令的情况下执行此操作吗

我只是担心不同shell之间的兼容性。如果我在设计程序时假设BASH环境,那么如果它使用Bourne Shell或CSH运行,会不会导致功能失调,或者我只是想得太多了?

执行任何程序都是特定的(几乎是根据操作系统的定义)。阅读免费下载的更多信息

您可能只关心特定的操作系统,如Linux(或操作系统类)。然后,我建议关注POSIX系统,并使用原语,如或后跟某些原语等。这些原语给出了很好的解释,并且可以免费下载


或者您可以使用一些框架库,如或等等。。。两者都提供了抽象,以某种操作系统“中立”的方式运行程序(对于它们支持的少数常见操作系统,如Linux、Windows、MacOSX)。

除了非常无用的std::system()之外,没有任何可移植的方式来执行程序。有很多特定于操作系统的方法可以做到这一点。请使用
exec
函数之一。如果您希望原始程序继续执行,请结合
fork
。谢谢Jesper和Douglas。exec和fork命令正是我想要的。我一定会考虑在我的应用程序中使用它们和管道谢谢,这很好地回答了我的问题。