1-2, 1-3 수정

do·2022년 3월 4일
0

API

목록 보기
4/42

시스템 환경변수

환경변수란?
프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임으로 쉘에서 정의되고 실행되는 동안 프로그램에 필요한 변수를 말합니다.

주요 환경변수 목록

  • $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을 리턴합니다.
  1. 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을 리턴합니다.
  1. unsetenv()
  • 기능. 환경변수 값을 삭제합니다.
  • 헤더. stdlib.h
  • 원형. int unsetenv(const char* name)
  • 인수. char* name 환경변수의 이름
  • 반환. int 성공하면 0, 실패하면 -1을 리턴합니다.

calc2.c 수정

  1. 매개변수로 포인터를 받습니다.
  2. 반환이 성공인지 실패인지 확인합니다.

    add sub mul 함수는 if문 필요없음

hello.c 수정

  1. getenv() 함수가 환경변수를 찾을 수 없을 경우에 null이 리턴됩니다.
  2. 반환이 성공인지 실패인지 확인합니다.
  3. 반복적인 코드를 수정합니다.

    main 함수 초반에 argc 에러 체크 해야함

0개의 댓글