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

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

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

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

## 대용량 파일 지원

Several operating systems (including AIX and Solaris) provide support for files that are larger than 2 GiB from a C programming model where `int` and `long` are 32-bit values. This is typically accomplished by defining the relevant size and offset types as 64-bit values. Such files are sometimes referred to as 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, 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` 모듈에 직접 액세스하는 것보다 권장됩니다.