C言語でシェルスクリプトを呼び、シェルスクリプト内で環境変数を設定させようとしています。
しかし、以下のコードでは、1つ目のsystem()が終了すると、環境変数を忘れてしまいます。
2つ目のsystem("./app");で起動させるアプリにも環境変数を踏襲したい場合、どのような工夫が必要ですか?
main.cc
c
1#include <iostream> 2#include <stdlib.h> 3#include <string.h> 4 5int main(){ 6 system("source ./Initenv.sh"); 7 system("./app"); 8 return 0; 9} 10
Initenv.sh
sh
1export HOGE=hanako
ただし、制約条件としては、Initenv.sh、appは変更できず、Cソースコードの中で環境変数の再設定は禁止されています。(環境変数の変更は、Initenv.shを真とすることになっており、ソースコードメンテナンスの都合上、Cに同じ環境変数の設定文を書いて二重メンテになるのを避ける)
回答2件
あなたの回答
tips
プレビュー