このドキュメントに従って、C++ で環境変数を読み取ろうとしています。私のコードは次のようになります。
char * val;
val = getenv( "smartDir" );
ShowMessage( val );
delete val;
私の問題は、環境変数が存在しないかのように、常に val が NULL になることです。ただし、ここでわかるように、変数が明確に定義されています。
ここで何が間違っていますか?
このドキュメントに従って、C++ で環境変数を読み取ろうとしています。私のコードは次のようになります。
char * val;
val = getenv( "smartDir" );
ShowMessage( val );
delete val;
私の問題は、環境変数が存在しないかのように、常に val が NULL になることです。ただし、ここでわかるように、変数が明確に定義されています。
ここで何が間違っていますか?
getenv
を参照してください、未定義の動作に関する部分)テストを簡単にするために、ほとんどの IDE は「デバッグ」設定の下に「環境」設定を提供します - 子プロセス (プログラム) に渡される環境変数を変更できます (Visual にはそれがあり、QtCreator にはそれがあり、C++Builder にはおそらくそれもあります。 )
コンソールからプログラムを実行する場合:SET var=value
グローバル環境を変更する代わりに使用して、環境を子プロセスに渡す前にローカルに変更します。
どちらのソリューションもグローバル環境を変更せず、さまざまな環境設定をすばやくテストできます。