如何設置環境變量並在ANSI C for Windows中啓動進程?如果可能的話,我想避免使用任何Windows API。如何設置env變量並在C中啓動進程?
回答
假設便攜您爲什麼要指定ANSI C,你可以做的正是你想要與POSIX功能_execve
什麼:
這是一個便攜式函數,它產生一個新的子進程並允許您提供一組環境設置。
在純ANSI C中,這是不可能的。沒有功能setenv
和putenv
,甚至沒有execv*
功能系列。相反,我建議你以你想要的方式編寫一個小接口(可能看起來像execve
),並且是依賴於系統的。這樣,您可以在將程序移植到非Windows環境時輕鬆更改包裝。
Visual C++有'_execve'(帶有前導下劃線),但它肯定不是ANSI C. – 2010-08-30 05:50:38
純粹的ANSI C是不可能的,OK。你能告訴我如何使用Windows API做到這一點? – 2010-08-30 06:04:29
可以使用CreateProcess功能從WINAPI開始一個新的進程
要使用Win32 API啓動進程,請使用kayrick所述的CreateProcess函數。可以使用SetEnvironmentVariable設置環境。 這些都是Win32 API。您可能也想看看GetEnvironmentVariable。
希望這會有所幫助。
- 1. 如何在EmberJS中設置「ENV」變量?
- 2. 在Docker中設置動態Env變量
- 3. 如何在/ etc/profile設置ENV變量?
- 4. 紅寶石,如何在每個線程中設置ENV變量?
- 5. 如何獲取在apache服務器進程中設置的env變量
- 6. 如何爲PHP設置env變量?
- 7. 在bash中設置env變量t秒
- 8. 在R中設置env變量
- 9. 如何等待子進程在父進程中設置變量?
- 10. 如何在junit測試用例中設置env變量?
- 11. 如何在Glassfish 2.1中設置env變量
- 12. 如何設置應用程序啓動應用程序變量
- 13. 如何在C中設置變量#
- 14. 如何在OS X上取消設置env變量?
- 15. 如何在jenkins編譯期間從文件設置ENV變量
- 16. 如何在Mac OS X上爲apache設置env變量
- 17. 基於grunt任務設置env變量
- 18. 在Mac上設置ENV變量的Ruby設置
- 19. Docker-compose:在env文件中設置一個變量並在Dockerfile中使用它
- 20. 如何使用在被調用shell腳本的路徑中的子進程中設置的env變量
- 21. 在由其他進程啓動的進程中設置斷點
- 22. 如何從子進程設置父進程的環境變量?
- 23. 在.env中設置的變量在Docker容器內不存在
- 24. Capistrano任務啓動/重新啓動pm2如何傳遞--env變量
- 25. 如何在Linux中更新Env變量?
- 26. 如何在node.js中導出env變量
- 27. 設置Env變量並從Python腳本運行Shell腳本
- 28. 如何在啓動時爲root用戶設置環境變量?
- 29. 如何在Matlab啓動時設置一些自定義變量
- 30. 如何從cygwin .bashrc設置windows env變量?
你想要「避免使用任何Windows API」嗎?啓動進程需要使用* some *類型的API ...你是說你只想使用標準C嗎? – 2010-08-30 05:44:48
是的,標準的ANSI C.要避免ShellExecute或其他什麼 – 2010-08-30 05:45:56
很長一段時間它不是_ANSI_ C,現在ANSI只是橡皮戳ISO :-) – paxdiablo 2010-08-30 05:52:03