환경변수란?
프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임으로 쉘에서 정의되고 실행되는 동안 프로그램에 필요한 변수를 말합니다.
주요 환경변수 목록
$PATH
환경 변수의 경로
- 명령어 입력시 환경변수에 잡혀있는 PATH를 따라 명령어 파일이 실행됩니다.
vim ~/.bashrc
에서 선언할시 영구적으로 적용됩니다.
export PATH=$PATH:새로 등록할 환경변수의 주소
export PATH="$PATH:./"
export LINES=$LINES
export COLUMNS=$COLUMNS
$HISTSIZE
사용된 명령어들을 저장한 한계지를 정하는 곳$HISTFILE
사용된 명령어들이 저장될 파일의 이름$IFS
내부 공간 구분자(Internal Field Separator)의 줄임말. 제작된 명령어의 옵션과 명령어를 구별해주는 등의 역할을 하는 환경변수$TMOUT
리눅스 셸에서 로그인한 사용자를 일정 시간 이후 로그아웃 시키도록 설정할 수 있습니다.$EDITOR
기본 에디터를 설정합니다. (export EDITOR=/usr/bin/vi)$PWD
사용자가 현재 작업하는 디렉토리$HOME
사용자의 홈 디렉토리$SHELL
현재 사용중인 셸 확인$DISPLAY
window x의 디스플레이 이름을 정합니다.$USER
사용자의 이름$TERM
터미널의 종류$LANG
프로그램 사용시 기본 지원되는 언어$HOSTNAME
현재 사용 중인 컴퓨터의 이름
환경변수를 읽고 쓰는 함수
1.getenv()
- 기능. 환경변수 값을 구합니다.
- 헤더.
stdlib.h
- 원형.
char* getenv(const char *name)
- 인수.
char* name
구하려는 환경변수의 이름- 반환.
char*
환경변수의 값.getenv()
가 환경스트링을 찾을 수 없는 경우,null
을 리턴합니다.
setenv()
- 기능. 환경변수 값을 추가합니다.
- 헤더.
stdlib.h
- 원형.
int setenv(const char *name, const char* value, int overwrite)
- 인수1.
char* name
환경변수의 이름- 인수2.
value
환경변수의 값- 인수3.
int* overwrite
이미 같은 이름의 변수가 있다면 값을 변경할지의 여부 (0: 덮어쓰지 않음/1: 변경함)- 반환.
int
성공하면 0, 실패하면 -1을 리턴합니다.
unsetenv()
- 기능. 환경변수 값을 삭제합니다.
- 헤더.
stdlib.h
- 원형.
int unsetenv(const char* name)
- 인수.
char* name
환경변수의 이름- 반환.
int
성공하면 0, 실패하면 -1을 리턴합니다.
add sub mul 함수는 if문 필요없음
getenv()
함수가 환경변수를 찾을 수 없을 경우에 null
이 리턴됩니다.main 함수 초반에 argc 에러 체크 해야함