基礎:
- 環境変数を使用してプログラムを設定するには、stdlib.hで定義されたgetenv関数を使用することができます。
- コマンドライン引数を使用してプログラムを構成するには、 'int main(int argc、const char * const * argv)'のようなmain関数を宣言し、ループを使用してargv配列の引数を調べます。サイズはargcで与えられます。
- 構成ファイルを使用してプログラムを構成するには、別のカスタム構成ファイル形式を作成する代わりに、このためのライブラリをいくつか選択することをお勧めします。ターゲットとするプラットフォームに応じて、コマンドライン引数を解析するライブラリもあります。
どちらの設定ソースは、アプリケーションによって異なりますが、私の意見では一般的にはコマンドライン引数>環境変数>設定ファイルが最も理にかなっています。ここで
は、コマンドラインオーバーライド環境で、環境やコマンドラインから設定を取得する例を示します。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, const char* const* argv) {
int i;
const char* myConfigVar;
// get default setting from environment
myConfigVar = getenv("MY_CONFIG_VAR");
// if the variable wasn't defined, initialize to hardcoded default
if (!myConfigVar)
myConfigVar = "default value";
// parse commandline arguments
// start at 1, because argv[0] contains the name of the program
for (i = 1; i < argc; ++i) {
if (strcmp("--my-config-var", argv[i]) == 0) {
if (i + 1 < argc)
myConfigVar = argv[i + 1];
else
printf("missing value for my-config-var argument\n");
}
}
printf("myConfigVar = '%s'\n", myConfigVar);
return 0;
}
あなたは既に1が存在する場合ので、より優れた既存のライブラリを使用し、それは非常にすぐに非常に長くて退屈になっご覧くださいあなたの望むターゲットプラットフォーム、または少なくともこの種のコードをいくつかの機能に組み込みます。
もう一つの興味深い選択肢は、スクリプト言語をアプリケーションにバインドして、アプリケーションで設定ファイルを読み込んで「実行」させることができます。また、ユーザーは設定ファイルを設定して、例えば、コマンドラインから。これは本当に価値があるかどうかは、アプリケーションのタイプとサイズ、ターゲットオーディエンスによって異なります。
OK、最後の行を削除しました:) – Tobi