私のプログラム
int main(void){
printf("Log file location : %s\n", getenv("LOG_FILE"));
return 0;
}
常にnullを印刷しています。
しかし、私はすでにenvを設定しています
export LOG_FILE=/root/logにより、ユーザーが「nagios」である /etc/nagios/.profile ファイル
また、ターミナルで「env」コマンドを実行しているときにも同じことがわかります。
私のプログラム
int main(void){
printf("Log file location : %s\n", getenv("LOG_FILE"));
return 0;
}
常にnullを印刷しています。
しかし、私はすでにenvを設定しています
export LOG_FILE=/root/logにより、ユーザーが「nagios」である /etc/nagios/.profile ファイル
また、ターミナルで「env」コマンドを実行しているときにも同じことがわかります。
ファイルのヘッダーgetenv
への書き込みを忘れると、関数は非常に興味深い結果を示します。#include <stdlib.h>
たとえば、次のようにコーディングします。
#include <stdio.h>
#include <stdlib.h>
int main(void){
printf("Log file location : %s\n", getenv("LOG_FILE"));
return 0;
}
かなりうまく機能します:
LOG_FILE="log" ./a.out
Log file location : log
しかし、2 行目をコメントアウトすると、次のようになります。
LOG_FILE="log" ./a.out
Segmentation fault (core dumped)