# 35.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 aumentam `OSError`.

## 35.1.1. Suporte a arquivos grandes

Vários sistemas operacionais (incluindo AIX, HP-UX, Irix e Solaris) fornecem suporte a arquivos maiores que 2 GiB a partir de um modelo de programação C em que `int` e `long` são valores de 32 bits. Isso geralmente é realizado definindo o tamanho relevante e os tipos de deslocamento como valores de 64 bits. Esses arquivos às vezes são chamados de arquivos grandes.

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`. 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

## 35.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`

  Um dicionário que representa o ambiente de strings no momento em que o interpretador foi iniciado. Chaves e valores são bytes no Unix e str no Windows. Por exemplo, `environ[b'HOME']` (`environ['HOME']` no Windows) é o nome do caminho do diretório inicial, equivalente a `getenv("HOME")` em 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()`.

  Alterado na versão 3.2: No Unix, chaves e valores são bytes.

  Nota

  O módulo `os` fornece uma implementação alternativa de `environ` que atualiza o ambiente ao ocorrerem modificações. Observe também que a atualização de `os.environ` tornará este dicionário obsoleto. O uso do módulo `os` é recomendado sobre o acesso direto ao módulo `posix`.