1
我有一個程序必須開始執行另一個進程。但子進程不應該繼承父進程的環境。即它應該像我從探索者啓動程序那樣啓動。在搜索時,我發現了一些exec *()函數,它們允許您發送一個字符串數組作爲環境變量。但是這個過程很麻煩,因爲我需要從列表中刪除我的程序特定的環境變量,並將它發送給孩子。有沒有其他的方式來實現這一點?創建一個進程而不繼承父進程的環境變量
我有一個程序必須開始執行另一個進程。但子進程不應該繼承父進程的環境。即它應該像我從探索者啓動程序那樣啓動。在搜索時,我發現了一些exec *()函數,它們允許您發送一個字符串數組作爲環境變量。但是這個過程很麻煩,因爲我需要從列表中刪除我的程序特定的環境變量,並將它發送給孩子。有沒有其他的方式來實現這一點?創建一個進程而不繼承父進程的環境變量
實現這一目標的唯一方法就是你覺得很麻煩。這真的不是那麼難,只是一些無意義的字符串操作。
問題是搞清楚由父程序設置的環境變量。這是第三方軟件,您可以在其中編寫可執行的程序。它還允許您將其他程序作爲程序的一部分進行調用! – 2012-02-21 11:54:50
我不知道爲什麼你會關心繫統提供了哪些值,而不是你在調用之前設置/修改的值,但是因爲你似乎在討論Windows系統,所以我建議你唯一的選擇是要解析註冊表中的系統環境密鑰,然後解析當前的用戶密鑰。我不知道要檢查哪些鍵,但不應該很難找到。但是,您需要記住,那裏的值可能會引用其他需要取消引用並替換其值的環境變量。 – mah 2012-02-21 11:59:40
用戶值位於HKCU \ Environment,我在HKLM \ SYSTEM \ ControlSet001 \ Control \ Session Manager \ Environment中找到系統值。儘管我對系統路徑感到厭倦,但看起來它可能是可變的。 – mah 2012-02-21 12:05:28