回答
的環境變量提供給main()
爲envp
參數 - 字符串的空終止數組:
int main(int argc, char **argv, char **envp)
{
for (char **env = envp; *env != 0; env++)
{
char *thisEnv = *env;
printf("%s\n", thisEnv);
}
return 0;
}
這是否也適用於Windows? – andrewrk 2016-01-12 05:41:50
如果你在windows下工作,並且你有一個編譯器,爲什麼不直接運行它並看看?讓我們知道怎麼回事。 – 2016-01-12 23:20:23
雖然廣泛支持(我不知道任何不支持它的編譯器),但不保證對main使用「envp」參數,只有「argc」和「argv」。 「envp」也使它對main()是本地的。更便攜的解決方案是查看幾乎每個編譯器提供的「environ」extern(global),以及getenv()和setenv()函數(這些函數應該可以確保操作流程環境的完整性) 。許多實現還提供了putenv()函數,但是該函數可能無法確保環境的完整性。 (請參閱文檔,註釋空間不足。) – 2017-12-04 20:49:30
int main(int argc, char* argv[], char* envp[]) {
// loop through envp to get all environments as "NAME=val" until you hit NULL.
}
我想你應該檢查environ
。使用「man environ」。
http://www.opengroup.org/onlinepubs/007908799/xsh/environ.html – ephemient 2010-01-18 16:21:33
您的編譯器可能會爲提供附加環境變量信息的主函數提供非標準擴展。在MS編譯器和大多數UNIX形式是這個版本的主要:
int main (int argc, char **argv, char **envp)
,其中第三個參數是環境變量的信息 - 使用調試器,看看有什麼格式是 - 可能是一個空值終止字符串指針的列表。
LPTCH WINAPI GetEnvironmentStrings(void);
http://msdn.microsoft.com/en-us/library/ms683187%28VS.85%29.aspx
編輯:僅適用於Windows。
如果你在Windows操作系統上運行,那麼你也可以調用GetEnvironmentStrings()
,它返回一個由空字符結尾的字符串塊。
在大多數環境中,你可以聲明主要爲:
main(int argc,char* argv[], char** envp)
envp包含所有環境字符串。
#include<stdio.h>
extern char **environ;
int main() {
int i = 1;
char *s = *environ;
for (; s; i++) {
printf("%s\n", s);
s = *(environ+i);
}
return 0;
}
您的示例中存在一個錯誤。第一個環境變量被打印兩次。 – 2014-06-10 11:55:08
你100%正確。我已將i的初始值從0更新爲1. – user1602017 2014-07-03 16:03:48
此解決方案的優點是它不需要位於main()中。如果你把它放在一個龐大而複雜的程序的中間,它可以正常工作。謝謝!! – 2015-05-05 01:18:36
int main(int argc, char **argv, char** env) {
while (*env)
printf("%s\n", *env++);
return 0;
}
- 1. 打印所有環境變量列表
- 2. 在NASM中打印環境變量
- 3. 在Linux中打印環境變量
- 4. 如何打印TCL中的所有環境變量?
- 5. 在C中打印沒有值的環境變量
- 6. 在類中打印所有變量? - Python
- 7. 打印所有變量?
- 8. 在netlogo中打印重複循環中變量的所有值
- 9. 如何在Perl/Plack中打印環境變量
- 10. 如何使用echo在execle()中打印環境變量?
- 11. 打印C類中的所有變量#
- 12. 有兩個變量的打印循環
- 13. 打印所有變量從一個類
- 14. 在Eclipse中爲所有JUnit測試設置環境變量
- 15. 如何在Eclipse中爲所有測試設置環境變量?
- 16. 打印包含python顏色的環境變量
- 17. svnkit沒有環境變量?
- 18. 如何讓pip尊重「CC」環境變量
- 19. 環境變量
- 20. 環境變量
- 21. 環境變量
- 22. 環境變量
- 23. 環境變量
- 24. 環境變量
- 25. 打印所有std ::語言環境名稱(Windows)
- 26. 環境變量,變量名
- 27. 在Ruby中,如何打印URL參數和服務器環境變量?
- 28. 打印所有全局變量/局部變量?
- 29. 如何在emacs中打印所有定義的變量?
- 30. 我想在Tensorflow中打印所有變量和佔位符
怎麼樣使用系統(ENV)調用ENV? – Vijay 2010-01-18 11:22:48