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.