# `posix` — 가장 일반적인 POSIX 시스템 호출

이 모듈은 C 표준과 POSIX 표준(얇게 위장한 유닉스 인터페이스)에 의해 표준화된 운영 체제 기능에 대한 액세스를 제공합니다.

이 모듈을 직접 임포트 하지 마십시오. 대신, 이 인터페이스의 이식성 있는 버전을 제공하는 모듈 `os`를 임포트 하십시오. 유닉스에서, `os` 모듈은 `posix` 인터페이스의 상위집합을 제공합니다. 비 유닉스 운영 체제에서는 `posix` 모듈을 사용할 수 없지만, `os` 인터페이스를 통해 항상 부분집합을 사용할 수 있습니다. 일단 `os`를 임포트하면, `posix` 대신 사용해도 성능 저하가 없습니다. 또한, `os`는 `os.environ`의 항목이 변경될 때 자동으로 `putenv()`를 호출하는 등의 몇 가지 추가 기능을 제공합니다.

에러는 예외로 보고됩니다; 보통 예외는 형 에러로 인한 것입니다만, 시스템 호출 때문에 보고되는 에러는 `OSError`를 발생시킵니다.

## 대용량 파일 지원

여러 운영 체제(AIX, HP-UX, Irix 및 Solaris 포함)는 `int`와 `long`이 32비트 값인 C 프로그래밍 모델로 인한 2 GiB보다 큰 파일에 대한 지원을 제공합니다. 이것은 일반적으로 관련 크기 및 오프셋 형을 64비트 값으로 정의하여 수행됩니다. 이러한 파일을 때로 대용량 파일 (large files)이라고 합니다.

Large file support is enabled in Python when the size of an `off_t` is larger than a `long` and the `long long` is at least as large as an `off_t`. It may be necessary to configure and compile Python with certain compiler flags to enable this mode. For example, it is enabled by default with recent versions of Irix, but with Solaris 2.6 and 2.7 you need to do something like:

    CFLAGS="`getconf LFS_CFLAGS`" OPT="-g -O2 $CFLAGS" \
            ./configure

대용량 파일을 사용할 수 있는 리눅스 시스템에서, 이렇게 할 수 있습니다:

    CFLAGS='-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64' OPT="-g -O2 $CFLAGS" \
            ./configure

## 주목할만한 모듈 내용

`os` 모듈 설명서에서 설명된 많은 함수 외에도, `posix`는 다음 데이터 항목을 정의합니다:

`posix.``environ`

  인터프리터가 시작될 때 문자열 환경을 나타내는 딕셔너리. 키와 값은 유닉스에서는 바이트열이고 윈도우에서는 str입니다. 예를 들어, `environ[b'HOME']`(윈도우에서는 `environ['HOME']`)은 홈 디렉터리의 경로명이며, C의 `getenv("HOME")`와 동등합니다.

  이 딕셔너리를 수정해도 `execv()`, `popen()` 또는 `system()`에 전달되는 문자열 환경에는 영향을 주지 않습니다; 환경을 변경해야 하는 경우 `environ`을 `execve()`로 전달하거나, `system()` 이나 `popen()`의 명령 문자열에 변수 대입과 export 문장을 추가하십시오.

  버전 3.2에서 변경: 유닉스에서, 키와 값은 바이트열입니다.

  참고

  `os` 모듈은 수정 시 환경을 갱신하는 `environ`의 대체 구현을 제공합니다. `os.environ`를 갱신하면 이 딕셔너리를 쓸모없게 만드는 것에 유의하십시오. `os` 모듈 버전을 사용하는 것이 `posix` 모듈에 직접 액세스하는 것보다 권장됩니다.