Я хотел бы использовать значение переменной среды $ HOSTNAME в моем коде на Фортране.
Моя попытка сделать это:
CHARACTER(LEN=100) :: hostname
INTEGER :: status_value = 0
CALL GET_ENVIRONMENT_VARIABLE("hostname",hostname, STATUS=status_value)
IF (status_value == 2) THEN
WRITE(nout,*) 'WARNING: Processor does not support environment variables - hostname is unknown.'
hostname = 'Unknown'
ELSE IF (status_value == -1) THEN
WRITE(nout,*) 'WARNING: Hostname is too long for character variable - hostname is truncated.'
ELSE IF (status_value == 1) THEN
WRITE(nout,*) 'WARNING: $HOSTNAME environment variable does not exist - hostname is unknown.'
hostname = 'Unknown'
Но мой результат заключается в том, что я всегда получаю результат, что $ HOSTNAME не существует.
Моя интерпретация значения статуса основана на этом:
http://gcc.gnu.org/onlinedocs/gfortran/GET_005fENVIRONMENT_005fVARIABLE.html
Интересно, что в примере на приведенной выше странице используется переменная окружения 'HOME'. Эта переменная окружения работает для меня.
Но я не вижу причин, по которым $ HOSTNAME не должен:
MacBook-Pro:1N45 emiller$ echo $HOSTNAME # My shell prompt
MacBook-Pro.local
Что происходит? Какую среду видит моя программа на Фортране во время выполнения?
Для чего он стоит, я использую iFort 12.