C언어 환경변수를 추가 또는 수정 함수 setenv()

2020. 3. 14. 10:53 컴퓨터/프로그래밍

C함수 환경변수를 추가 또는 수정 setenv()

putenv() 함수처럼 환경 변수 목록 중에 변수값을 수정하거나 추가합니다. 대신에 putenv() 함수는 바로 수정되거나 추가되지만 setenv()는 옵션에 따라 이미 있는 변수에 대해서는 취소할 수 있습니다.

역시 putenv() 함수처럼 수정된 변수값이나 새로 추가된 환경 변수값은 실행 중인 프로그램에서만 유효하며 외부적으로는 변경되지 않습니다. 즉, 프로그램의 실행 단위인 애플리케이션 내에서만 유효합니다.

  • 헤더: stdlib.h
  • 형태: int setenv(const char *envname, const char *envval, int overwrite)
  • 인수: char *envname 환경 변수 이름
    char *envval 변수값
    int overwrite 이미 같은 이름의 변수가 있다면 값을 변경할지의 여부
  • 반환: int 성공하면 0, 실패하면 -1

 

예제

#include <stdio .h>
#include <stdlib .h>

extern char **environ;  // 외부 참조 변수로 선언

int main()
{
   setenv( "QTDIR"    , "/jwmx/badayak/com", 0);
   setenv( "NEWVALLUE", "badayak.com" , 1);

   while( *environ)
      printf( "%s\n", *environ++);

   return 0;
}

실행 결과

]$ ./a.out
HOSTNAME=jwCentOS
TERM=linux
       :
QTDIR=/usr/lib/qt-3.3    <- 변경되지 않음
       :
NEWVALLUE=badayak.com    <- 추가 되었음
]$ printenv              <- 프로그램 종료 후의 환경 값을 확인
HOSTNAME=jwCentOS
TERM=linux
       :
QTDIR=/usr/lib/qt-3.3
       :
NEWVALLUE=badayak.com    <-  프로그램 실행 후에는 사라짐
]$
이 댓글을 비밀 댓글로