GET_ENVIRONMENT_VARIABLE — 환경 변수 가져오기

GET_ENVIRONMENT_VARIABLE — 환경 변수 가져오기

환경 변수의 값을 읽어야 할 때가 있어요. HOME이라든가 실행 환경에 따라 달라지는 설정을 프로그램 안에서 꺼내 쓰려면 꼭 필요한 기능이죠. GET_ENVIRONMENT_VARIABLE은 환경 변수 NAME의 값을 가져오는 Fortran 2003 표준 내장 서브루틴이에요. 앞서 본 구식 GETENV보다 인자가 더 풍부해서, 상태나 길이까지 함께 확인할 수 있어요.

출처: gfortran 공식 문서 - GET_ENVIRONMENT_VARIABLE

본문

CALL GET_ENVIRONMENT_VARIABLE(NAME[, VALUE, LENGTH, STATUS, TRIM_NAME])

설명(Description)

환경 변수 NAME의 값을 가져와요.

GET_ENVIRONMENT_VARIABLE은 스레드 안전(thread-safe)을 보장하지 않아요. 이 내장 함수를 호출하는 동안 환경이 동시에 갱신되지 않도록 하는 것은 사용자의 책임이에요.

분류(Class)

서브루틴

인자(Arguments)

  • NAME — 타입이 CHARACTER이고 기본 kind인 스칼라여야 해요.
  • VALUE — (선택) 타입이 CHARACTER이고 기본 kind인 스칼라여야 해요.
  • LENGTH — (선택) 타입이 INTEGER이고 기본 kind인 스칼라여야 해요.
  • STATUS — (선택) 타입이 INTEGER이고 기본 kind인 스칼라여야 해요.
  • TRIM_NAME — (선택) 타입이 LOGICAL이고 기본 kind인 스칼라여야 해요.

반환값(Return value)

NAME의 값을 VALUE에 저장해요. VALUE가 데이터를 담기에 충분히 크지 않으면 잘라져요. NAME이 설정되어 있지 않으면 VALUE는 공백(blank)으로 채워져요. LENGTH 인자는 환경 변수 NAME을 저장하는 데 필요한 길이를 담아요(그런 변수가 없으면 0). STATUSVALUE는 있지만 환경 변수에 비해 너무 짧으면 -1, 환경 변수가 존재하지 않으면 1, 프로세서가 환경 변수를 지원하지 않으면 2, 그 외 모든 경우엔 0이에요. TRIM_NAME.FALSE.로 주어지면 NAME뒤쪽 공백도 의미가 있어요—그게 아니라면 뒤쪽 공백은 환경 변수 이름에 포함되지 않아요.

예제

PROGRAM test_getenv
  CHARACTER(len=255) :: homedir
  CALL get_environment_variable("HOME", homedir)
  WRITE (*,*) TRIM(homedir)
END PROGRAM

HOME 환경 변수의 값을 homedir에 담아 출력해요. 예제처럼 이름과 담을 변수만 넘기면 되고, 상태나 길이가 필요할 때 선택 인자를 하나씩 붙이면 돼요.

표준(Standard)

Fortran 2003 이상이에요.