EMi*_*ler 2 fortran hostname environment-variables
我想在我的Fortran代码中使用$ 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'
Run Code Online (Sandbox Code Playgroud)
但我的结果是我总是得到$ 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
Run Code Online (Sandbox Code Playgroud)
到底是怎么回事?我的Fortran程序在运行时看到了什么环境?
对于它的价值,我使用的是iFort 12.
这实际上工作正常,但在大多数平台上,这些环境变量名称区分大小写.我使用gfortran或ifort在我的linux机器上得到你的结果,但如果我将你的"主机名"字符串更改为"HOSTNAME",我会得到预期的结果.
| 归档时间: |
|
| 查看次数: |
1362 次 |
| 最近记录: |