This document is for an old version of Python that is no longer supported. You should upgrade and read the documentação do Python para versão estável atual.

# 36.1. `posix` — As chamadas de sistema mais comuns do POSIX

Este módulo fornece acesso à funcionalidade do sistema operacional padronizada pelo padrão C e pelo padrão POSIX (uma interface Unix levemente disfarçada).

Não importe este módulo diretamente. Em vez disso, importe o módulo `os`, que fornece uma versão portátil dessa interface. No Unix, o módulo `os` fornece um superconjunto da interface `posix`. Em sistemas operacionais não Unix, o módulo `posix` não está disponível, mas um subconjunto está sempre disponível na interface `os`. Uma vez que `os` é importado, seu uso não causa penalidade de desempenho em comparação com `posix`. Além disso, `os` fornece algumas funcionalidades adicionais, como chamar automaticamente `putenv()` quando uma entrada em `os.environ` é alterada.

Erros são relatados como exceções. As exceções usuais são dadas para erros de tipo, enquanto os erros relatados pelas chamadas do sistema levantam `OSError`.

## 36.1.1. Suporte a arquivos grandes

Several operating systems (including AIX, HP-UX, Irix and Solaris) provide support for files that are larger than 2 GB 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` type is available and is at least as large as an `off_t`. Python longs are then used to represent file sizes, offsets and other values that can exceed the range of a Python int. 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

Em sistemas Linux com capacidade para arquivos grandes, isso pode funcionar:

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

## 36.1.2. Conteúdo notável do módulo

Além de muitas funções descritas na documentação do módulo `os`, `posix` define o seguinte item de dados:

`posix.``environ`

  A dictionary representing the string environment at the time the interpreter was started. For example, `environ['HOME']` is the pathname of your home directory, equivalent to `getenv("HOME")` in C.

  A modificação deste dicionário não afeta o ambiente de strings passado por `execv()`, `popen()` ou `system()`. Se você precisar alterar o ambiente, passe `environ` para `execve()` ou adicione atribuições de variável e instruções de exportação para a string de comando para `system()` ou `popen()`.

  Nota

  The `os` module provides an alternate implementation of `environ` which updates the environment on modification. Note also that updating `os.environ` will render this dictionary obsolete. Use of the `os` module version of this is recommended over direct access to the `posix` module.