所以我在C++中发现我可以使用popen()方法来运行一个命令并打开一个流,以便我可以读取它的输入和输出。 这适用于我正在使用它,但它困扰我,它将一个命令传递到外壳为了做到这一点。C++:如何在不传递命令的情况下执行文件?
我想知道的是,如果可以在给定文件位置的情况下执行可执行文件。然后我需要能够读取程序的输出。我可以在不向shell传递命令的情况下执行此操作吗?
我只是对不同shell的兼容性有所担忧。如果我设计我的程序时采用BASH环境,如果它是使用Bourne Shell或CSH运行的话,它可能最终会失效吗?或者我只是在过度使用它?
除了相当无用的std :: system()之外,没有可执行程序的可移植方式。有很多操作系统特定的方法来做到这一点。 –
使用'exec'函数之一。如果您希望原始程序继续执行,请与'fork'组合。 –
谢谢Jesper和Douglas。 exec和fork命令正是我所需要的。我一定会考虑使用他们和管道为我的应用程序 –