설명

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 
#include 

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

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

   while( *environ)
      printf( "%sn", *environ++);

   return 0;
}
]$ ./a.out
HOSTNAME=jwCentOS
TERM=linux
: QTDIR=/usr/lib/qt-3.3 <- 변경되지 않음
: NEWVALLUE=form.falinux.com ]$ printenv <- 프로그램 종료 후의 환경 값을 확인 HOSTNAME=jwCentOS TERM=linux : QTDIR=/usr/lib/qt-3.3 : NEWVALLUE=form.falinux.com <- 없음 ]$