2017-10-26 20 views
-1

私はubuntu 14.04を使用しています。プログラムの中でmain()の先頭に次のコードを追加しましたが、実行すると何も表示されません。getenv()は同じ環境変数の異なるプログラムで異なる値を返します

char const* masteruri = getenv("ROS_MASTER_URI"); 
if (masteruri!=NULL){ 
printf ("The current masteruri is: %s",masteruri); 
} 
char const* rosdis = getenv("ROS_DISTRO"); 
if (rosdis!=NULL){ 
printf ("\n The current rosdis is: %s",rosdis); 
} 

が、別のプログラムで同じコードが期待された結果

The current masteruri is: http://localhost:11311 
The current rosdis is: indigo 

を与える私はSTDLIB.Hが含まれていると私は私がいないなど/のprofile.d

+1

_in a program_、_別のプログラム_ **何**プログラムですか? –

+1

また、どのようにこれらのプログラムを実行するのですか、コンテキストは非常に重要です。 – gonutz

答えて

0

に変数をエクスポート理由は分かっていますが、何らかの理由でprintfが動作していなかったので、DEVLOG_INFOを試して、/etc/profile.dにエクスポートされた変数の値が両方のプログラムでgetenv()で返されることに気付きました。

関連する問題