2010-08-30 42 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

相關問題