C++:如何在不将命令传递给 shell 的情况下执行文件?
C++: How to execute a file without passing a command to the shell?
所以我在C++中发现我可以使用popen((方法来运行命令并打开一个流,以便我可以读取它的输入和输出。 这适用于我使用它的目的,但它让我感到困扰的是,它将命令传递给 shell 以执行此操作。
我想知道的是是否可以在给定文件位置的情况下执行可执行文件。然后,我需要能够读取程序的输出。我可以在不将命令传递给外壳的情况下执行此操作吗?
我只是对不同外壳之间的兼容性有一些担忧。如果我在设计程序时假设 BASH 环境,那么如果它使用 Bourne Shell 或 CSH 运行,它最终会出现故障,还是我只是想多了?
执行任何程序都是特定于操作系统的(几乎根据操作系统的定义(。阅读可免费下载的操作系统:三个简单的部分了解更多信息。
你只能关心一个特定的操作系统,比如Linux(或操作系统类(。然后我建议关心POSIX系统,并使用像posix_spawn或fork这样的原语,然后是一些exec等。高级Linux编程给出了很好的解释,并且可以免费下载。
或者你可以使用一些框架库,如POCO或Qt等......两者都提供了以某种操作系统"中立"方式运行程序的抽象(对于它们支持的少数常见操作系统 - Linux,Windows,MacOSX(。
相关文章:
- 在没有太多条件句的情况下,我如何避免被零除
- 为什么在没有显式默认构造函数的情况下,将另一个结构封装在联合中作为成员的结构不能编译
- 在未初始化映射的情况下,将值插入到映射的映射中
- 是默认情况下分配给char数组常量的值
- 为什么我不能在不创建字符串变量的情况下使用函数的字符串输出
- 如何在不产生任何垃圾的情况下获得C中的像素
- 在已经使用Git的情况下减少编译时间
- 为什么在Windows上的VS 2019和Clang 9中"size_t"在没有标题的情况下工作
- 如何在没有信号的情况下从C++执行QML插槽
- 如何在不知道向量大小的情况下输入向量内部的向量?
- 为什么在某些情况下不写入此文件?
- 为什么Mat类的两个对象可以在不重载运算符+的情况下添加
- 在没有Xcode的情况下在Mac捆绑包中嵌入框架
- UE4-如何在给定4个屏幕坐标的情况下缩放纹理或材质
- 为什么需要复制构造函数,在哪些情况下它们非常有用
- 在C++中如何在没有pow的情况下进行基础计算
- 松弛原子与无同步情况下的记忆连贯性
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- C++:如何在不将命令传递给 shell 的情况下执行文件?
- 如何在没有弹出cmd窗口的情况下以c ++静默方式执行shell程序