如何使用System()函数[C ]将CMD存储器存储在C 中
How to Store cmd memory in c++ using system() Function [C++]
查看下面的代码!您将了解我想要什么:
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
system("set plock=24865");
system("echo %plock%"); // I know this will not work.But How to make it work?
return 0;
}
每个system()
调用都会创建一个单独的环境,然后将其返回到您的程序时将其删除。这就是为什么他们不能彼此之间的信息。
要为程序的环境设置一个环境变量,请使用putenv()
调用,然后使用getenv()
调用来阅读。
system()
调用继承了调用该程序的环境的副本,因此至少您可以使用putenv()
设置变量,并具有system()
调用的程序。
如果您期望使用system()
调用外部程序,并通过环境变量从中获取信息,则无法轻松执行此操作。如果这是您的目标,请考虑使用fork()
。
好吧,正如您所说,这是行不通的。重要的是要理解的是为什么: system
调用催生了一个子进程来运行外壳,然后在该子过程中设置一个环境变量,该迅速终止。
也许您的问题过于特定,因为它询问如何"使用system()
"执行此操作;简短的答案是你不能。(很长的答案是您可以在注册表中设置环境变量,但是只有当您打算将其作为对计算机的永久配置更改时,这是明智的。如果您只是想在后续system()
中设置一个用于使用的变量,那不是最好的想法。来自同一程序的电话..)
因此,您可以使用SetEnvironmentVariable()
函数,该功能将在当前过程中设置环境变量(而不是即将消失的孩子)。
update - 在问题的评论线程中提到了另一种选项;但是,它假设您可以设置变量并立即运行依赖于其之后的任何/所有命令。如果您可以做到这一点,则可以将所有命令打包到一个system
调用中,最简单地使用批处理脚本...
相关文章:
- 如何使用ndk-build.cmd构建Android.so文件
- 在由Sublime文本3编译后在cmd上显示Java程序输出
- 如何在使用Makefile构建后在cmd中运行该程序?
- 为什么下面的Hello World程序在PowerShell上没有显示任何输出?同一程序在CMD上显示正确的输出
- 父进程意外被子 cmd 杀死.exe运行 java jar 的进程 - WINDOWS 7 问题 - C++
- 使用 CreateProcessWithTokenW 在 CMD 中启动 CMD
- 使用 system() 函数在C++程序中运行 cmd 命令
- cmd.exe与Powershell中C++程序的不同执行时间
- C++ - 如何将空格键转换为短划线以进行cmd输入
- 从Visual Studio 2017运行MPI应用程序,每个进程在不同的cmd窗口中
- 代码编译但不起作用!cmd窗口只是理想和理想,但什么也没发生
- 如何查看完整的CMD执行命令,包括参数和标志?
- 无法使用QProcess在cmd.exe中执行复制命令
- 如何将我的程序转换为.dll文件并使用rundll32.exe在cmd中运行它?
- 仅使用 C++ 和 cmd 创建.lnk文件
- 从 CMD 运行.exe并自动向其传递参数
- 使用Qt在CMD中复制多个文件
- CPP 程序二查找两个给定日期之间的天数,conol CMD
- 如何在Powershell中运行C++程序,就像CMD一样?
- 如何使用System()函数[C ]将CMD存储器存储在C 中