如何设置环境变量并在ANSI C for Windows中启动进程?如果可能的话,我想避免使用任何Windows API。
答案 0 :(得分:3)
在纯ANSI C中,它是不可能的。功能setenv
和putenv
都没有,甚至execv*
系列功能都缺失。
相反,我建议你以你想要的方式编写一个小接口(可能看起来像execve
)并且是系统相关的。这样,您可以在将程序移植到非Windows环境时轻松更改包装器。
答案 1 :(得分:1)
假设可移植性是指定ANSI C的原因,您可以使用POSIX函数_execve
完全执行所需的操作:
这是一个便携式功能,可以生成一个新的子进程,并允许您提供一系列环境设置。
答案 2 :(得分:0)
您可以使用WInAPI中的CreateProcess功能启动新流程
答案 3 :(得分:0)
要使用Win32 API启动进程,请使用kayrick所述的CreateProcess函数。
要设置环境,您可以使用SetEnvironmentVariable。 这些都是Win32 API。
您可能还想查看GetEnvironmentVariable。
希望这有帮助。