Linux では、c++ プログラム バイナリを起動する bash スクリプトがあります。私がする必要があるのは、そのスクリプトで環境変数を設定し、起動した C++ プログラム内で を使用してその変数にアクセスすることですgetenv
。
ここにスクリプトのコードがあります
#!/bin/bash
export SAMPLE_VAR=1
./c++_binary
C++ プログラム:
char * env_var = getenv("SAMPLE_VAR");
if (env_var != NULL) printf("var set\n");
ただし、これは機能しないようです。私が理解していることから、スクリプトを実行すると、新しいサブシェルで実行され、そこに環境変数 SAMPLE_BAR が設定されますが、C++ バイナリも同じサブシェルで起動されます (ここで間違っている可能性があります)。 SAMPLE_VAR にアクセスできます。env変数を設定するだけの別のスクリプトを書いてみましたが、メインスクリプトでそのスクリプトを呼び出してsource env_var_set.sh
も無駄でした。
この方法で、新しく設定された環境変数をプログラムに渡すことは可能ですか? ありがとう