在 Windows 中,创建新的子进程时我使用
在这里,我们可以看到
CreateProcess
函数:BOOL WINAPI CreateProcess(
__in_opt LPCTSTR lpApplicationName,
__inout_opt LPTSTR lpCommandLine,
__in_opt LPSECURITY_ATTRIBUTES lpProcessAttributes,
__in_opt LPSECURITY_ATTRIBUTES lpThreadAttributes,
__in BOOL bInheritHandles,
__in DWORD dwCreationFlags,
__in_opt LPVOID lpEnvironment,
__in_opt LPCTSTR lpCurrentDirectory,
__in LPSTARTUPINFO lpStartupInfo,
__out LPPROCESS_INFORMATION lpProcessInformation
);
在这里,我们可以看到
CreateProcess
可以获取lpEnvironment
参数来指定新进程的环境变量,如果它为NULL,则子进程将具有与父进程相同的环境。现在我希望子进程具有与父进程相同的环境加上在lpEnvironment
中指定的环境变量(即父进程和指定变量的合并环境)。您建议如何做到这一点?我应该获取父进程的所有环境变量,将它们与新的变量合并,并将它们全部传递给CreateProcess
吗?