16. Serviços Genéricos do Sistema Operacional
*********************************************

Os módulos descritos neste capítulo fornecem interfaces aos recursos
do sistema operacional e que estão disponíveis em (quase) todos os
sistemas operacionais, como arquivos e um relógio. As interfaces
geralmente são modeladas após as interfaces Unix ou C, mas elas também
estão disponíveis na maioria dos outros sistemas. Aqui temos uma visão
geral:

* 16.1. "os" --- Diversas interfaces de sistema operacional

  * 16.1.1. Nomes de arquivos, argumentos de linha de comando e
    variáveis de ambiente

  * 16.1.2. Parâmetros de Processo

  * 16.1.3. Criação de Objetos Files

  * 16.1.4. Operações dos Descritores de Arquivos

    * 16.1.4.1. Consultando o tamanho de um terminal

    * 16.1.4.2. Herança de descritores de arquivo

  * 16.1.5. Arquivos e Diretórios

    * 16.1.5.1. Atributos estendidos do Linux

  * 16.1.6. Gerenciamento de processo

  * 16.1.7. Interface do agendador

  * 16.1.8. Diversas Informações de Sistema

  * 16.1.9. Números aleatórios

* 16.2. "io" --- Ferramentas principais para trabalhar com fluxos

  * 16.2.1. Visão Geral

    * 16.2.1.1. Text I/O

    * 16.2.1.2. Binary I/O

    * 16.2.1.3. Raw I/O

  * 16.2.2. High-level Module Interface

    * 16.2.2.1. In-memory streams

  * 16.2.3. hierarquia de classe

    * 16.2.3.1. I/O Base Classes

    * 16.2.3.2. Raw File I/O

    * 16.2.3.3. Buffered Streams

    * 16.2.3.4. Text I/O

  * 16.2.4. Performance

    * 16.2.4.1. Binary I/O

    * 16.2.4.2. Text I/O

    * 16.2.4.3. Multi-threading

    * 16.2.4.4. Reentrancy

* 16.3. "time" --- Acesso ao horário e conversões

  * 16.3.1. Funções

  * 16.3.2. Constantes de ID de Relógio

  * 16.3.3. Constantes de Fuso Horário

* 16.4. "argparse" --- Parser para opções de linha de comando,
  argumentos e subcomandos

  * 16.4.1. Exemplo

    * 16.4.1.1. Criando um parser

    * 16.4.1.2. Adicionando argumentos

    * 16.4.1.3. Análise de argumentos

  * 16.4.2. Objetos ArgumentParser

    * 16.4.2.1. prog

    * 16.4.2.2. usage

    * 16.4.2.3. description

    * 16.4.2.4. epilog

    * 16.4.2.5. parents

    * 16.4.2.6. formatter_class

    * 16.4.2.7. prefix_chars

    * 16.4.2.8. fromfile_prefix_chars

    * 16.4.2.9. argument_default

    * 16.4.2.10. allow_abbrev

    * 16.4.2.11. conflict_handler

    * 16.4.2.12. add_help

  * 16.4.3. O método add_argument()

    * 16.4.3.1. name ou flags

    * 16.4.3.2. action

    * 16.4.3.3. nargs

    * 16.4.3.4. const

    * 16.4.3.5. default

    * 16.4.3.6. tipo

    * 16.4.3.7. choices

    * 16.4.3.8. required

    * 16.4.3.9. help

    * 16.4.3.10. metavar

    * 16.4.3.11. dest

    * 16.4.3.12. Action classes

  * 16.4.4. The parse_args() method

    * 16.4.4.1. Option value syntax

    * 16.4.4.2. Argumentos inválidos

    * 16.4.4.3. Argumentos contendo "-"

    * 16.4.4.4. Argument abbreviations (prefix matching)

    * 16.4.4.5. Além do "sys.argv"

    * 16.4.4.6. O objeto Namespace

  * 16.4.5. Other utilities

    * 16.4.5.1. Sub-comandos

    * 16.4.5.2. Objetos FileType

    * 16.4.5.3. Grupos de Argumentos

    * 16.4.5.4. Exclusão Mútua

    * 16.4.5.5. Parser defaults

    * 16.4.5.6. Imprimindo a ajuda

    * 16.4.5.7. Análise parcial

    * 16.4.5.8. Customizing file parsing

    * 16.4.5.9. Métodos existentes

  * 16.4.6. Upgrading optparse code

* 16.5. "getopt" --- Analisador sintático no estilo C para opções de
  linha de comando

* 16.6. "logging" --- Facilidade para registrar com Python

  * 16.6.1. Objetos Logger

  * 16.6.2. Logging Levels

  * 16.6.3. Manipulação de Objetos

  * 16.6.4. Formatter Objects

  * 16.6.5. Filter Objects

  * 16.6.6. LogRecord Objects

  * 16.6.7. Atributos LogRecord

  * 16.6.8. LoggerAdapter Objects

  * 16.6.9. Thread Safety

  * 16.6.10. Funções de Nível de Módulo

  * 16.6.11. Module-Level Attributes

  * 16.6.12. Integration with the warnings module

* 16.7. "logging.config" --- Logging configuration

  * 16.7.1. Configuration functions

  * 16.7.2. Configuration dictionary schema

    * 16.7.2.1. Dictionary Schema Details

    * 16.7.2.2. Incremental Configuration

    * 16.7.2.3. Object connections

    * 16.7.2.4. User-defined objects

    * 16.7.2.5. Access to external objects

    * 16.7.2.6. Access to internal objects

    * 16.7.2.7. Import resolution and custom importers

  * 16.7.3. Formato do arquivo de configuração

* 16.8. "logging.handlers" --- Tratadores de registro

  * 16.8.1. StreamHandler

  * 16.8.2. FileHandler

  * 16.8.3. NullHandler

  * 16.8.4. WatchedFileHandler

  * 16.8.5. BaseRotatingHandler

  * 16.8.6. RotatingFileHandler

  * 16.8.7. TimedRotatingFileHandler

  * 16.8.8. SocketHandler

  * 16.8.9. DatagramHandler

  * 16.8.10. SysLogHandler

  * 16.8.11. NTEventLogHandler

  * 16.8.12. SMTPHandler

  * 16.8.13. MemoryHandler

  * 16.8.14. HTTPHandler

  * 16.8.15. QueueHandler

  * 16.8.16. QueueListener

* 16.9. "getpass" --- Entrada de senha portátil

* 16.10. "curses" --- Gerenciador de terminal para visualizadores de
  células de caracteres.

  * 16.10.1. Funções

  * 16.10.2. Window Objects

  * 16.10.3. Constantes

* 16.11. "curses.textpad" --- Text input widget for curses programs

  * 16.11.1. Textbox objects

* 16.12. "curses.ascii" --- Utilities for ASCII characters

* 16.13. "curses.panel" --- A panel stack extension for curses

  * 16.13.1. Funções

  * 16.13.2. Objetos Panel

* 16.14. "platform" ---  Access to underlying platform's identifying
  data

  * 16.14.1. Cross Platform

  * 16.14.2. Java Platform

  * 16.14.3. Windows Platform

    * 16.14.3.1. Win95/98 specific

  * 16.14.4. Plataforma Mac OS

  * 16.14.5. Plataformas Unix

* 16.15. "errno" --- Standard errno system symbols

* 16.16. "ctypes" --- Uma biblioteca de funções externas para o Python

  * 16.16.1. Tutorial ctypes

    * 16.16.1.1. Loading dynamic link libraries

    * 16.16.1.2. Accessing functions from loaded dlls

    * 16.16.1.3. Calling functions

    * 16.16.1.4. Fundamental data types

    * 16.16.1.5. Invocação de Funções, continuação

    * 16.16.1.6. Calling functions with your own custom data types

    * 16.16.1.7. Specifying the required argument types (function
      prototypes)

    * 16.16.1.8. Tipos de Retorno

    * 16.16.1.9. Passing pointers (or: passing parameters by
      reference)

    * 16.16.1.10. Structures and unions

    * 16.16.1.11. Structure/union alignment and byte order

    * 16.16.1.12. Bit fields in structures and unions

    * 16.16.1.13. Arrays

    * 16.16.1.14. Ponteiros

    * 16.16.1.15. Conversão de Tipos

    * 16.16.1.16. Tipos Incompletos

    * 16.16.1.17. Funções Callbacks

    * 16.16.1.18. Accessing values exported from dlls

    * 16.16.1.19. Surprises

    * 16.16.1.20. Variable-sized data types

  * 16.16.2. Referência ctypes

    * 16.16.2.1. Finding shared libraries

    * 16.16.2.2. Loading shared libraries

    * 16.16.2.3. Foreign functions

    * 16.16.2.4. Function prototypes

    * 16.16.2.5. Funções utilitárias

    * 16.16.2.6. Data types

    * 16.16.2.7. Fundamental data types

    * 16.16.2.8. Structured data types

    * 16.16.2.9. Arrays and pointers
