2010-08-30 43 views
2

如何设置环境变量并在ANSI C for Windows中启动进程?如果可能的话,我想避免使用任何Windows API。如何设置env变量并在C中启动进程?

+0

你想要“避免使用任何Windows API”吗?启动进程需要使用* some *类型的API ...你是说你只想使用标准C吗? – 2010-08-30 05:44:48

+0

是的,标准的ANSI C.要避免ShellExecute或其他什么 – 2010-08-30 05:45:56

+0

很长一段时间它不是_ANSI_ C,现在ANSI只是橡皮戳ISO :-) – paxdiablo 2010-08-30 05:52:03

回答

1

假设便携您为什么要指定ANSI C,你可以做的正是你想要与POSIX功能_execve什么:

这是一个便携式函数,它产生一个新的子进程并允许您提供一组环境设置。

3

在纯ANSI C中,这是不可能的。没有功能setenvputenv,甚至没有execv*功能系列。相反,我建议你以你想要的方式编写一个小接口(可能看起来像execve),并且是依赖于系统的。这样,您可以在将程序移植到非Windows环境时轻松更改包装。

+1

Visual C++有'_execve'(带有前导下划线),但它肯定不是ANSI C. – 2010-08-30 05:50:38

+0

纯粹的ANSI C是不可能的,OK。你能告诉我如何使用Windows API做到这一点? – 2010-08-30 06:04:29

相关问题