intro

INTRO(2)                 Manual do Programador do Linux                 INTRO(2)



NOME
       intro - introdução às chamadas do sistema

DESCRIÇÃO
       A seção 2 do manual descreve as chamadas do sistema Linux. Uma chamada do
       sistema é um ponto de entrada no kernel do Linux. Geralmente, as chamadas
       do sistema não são chamadas diretamente: em vez disso, a maioria das
       chamadas do sistema tem funções wrappers correspondentes de bibliotecas C
       que executam as etapas necessárias (por exemplo, interceptar no modo
       kernel) para chamar a chamada do sistema. Portanto, fazer uma chamada do
       sistema é o mesmo que chamar uma função normal da biblioteca.

       Em muitos casos, a função wrapper de biblioteca C não faz nada além de:

       *  copiar argumentos e o número de chamadas do sistema exclusivas para os
          registradores em que o kernel os espera;

       *  interceptar no modo kernel, quando o kernel faz o trabalho real da
          chamada do sistema;

       *  definir errno se a chamada do sistema retornar um número de erro
          quando o kernel retornar a CPU ao modo de usuário.

       No entanto, em alguns casos, uma função wrapper pode fazer muito mais do
       que isso, por exemplo, executando algum pré-processamento dos argumentos
       antes de capturar no modo kernel ou pós-processamento de valores
       retornados pela chamada do sistema. Nesse caso, as páginas de manual da
       Seção 2 geralmente tentam observar os detalhes da interface da API da
       biblioteca C (geralmente GNU) C e da chamada bruta do sistema.
       Geralmente, a DESCRIÇÃO principal se concentrará na interface da
       biblioteca C, e as diferenças para a chamada do sistema são abordadas na
       seção NOTAS.

       Para obter uma lista das chamadas do sistema Linux, consulte syscalls(2).

VALOR DE RETORNO
       Em caso de erro, a maioria das chamadas do sistema retorna um número de
       erro negativo (ou seja, o valor negado de uma das constantes descritas em
       errno(3)). O wrapper da biblioteca C oculta esse detalhe do chamador:
       quando uma chamada do sistema retorna um valor negativo, o wrapper copia
       o valor absoluto na variável errno e retorna -1 como o valor de retorno
       do wrapper.

       O valor retornado por uma chamada de sistema bem-sucedida depende da
       chamada. Muitas chamadas do sistema retornam 0 em caso de êxito, mas
       algumas podem retornar valores diferentes de zero de uma chamada
       bem-sucedida. Os detalhes estão descritos nas páginas individuais do
       manual.

       Em alguns casos, o programador deve definir uma macro de teste de recurso
       para obter a declaração de uma chamada do sistema a partir do arquivo de
       cabeçalho especificado na seção SINOPSE da página man. (Onde necessário,
       essas macros de teste de recursos devem ser definidas antes da inclusão
       de qualquer arquivo de cabeçalho.) Nesses casos, a macro necessária é
       descrita na página man. Para obter mais informações sobre macros de teste
       de recursos, consulte feature_test_macros(7).

DE ACORDO COM
       Certos termos e abreviações são usados para indicar variantes e padrões
       UNIX aos quais as chamadas nesta seção estão em conformidade. Vejo
       standards(7).

NOTAS
   Chamando diretamente
       Na maioria dos casos, é desnecessário invocar uma chamada do sistema
       diretamente, mas há momentos em que a biblioteca Standard C não
       implementa uma boa função de wrapper para você. Nesse caso, o programador
       deve chamar manualmente a chamada do sistema usando syscall(2).
       Historicamente, isso também era possível usando uma das macros _syscall
       descritas em _syscall(2).

   Autores e condições de direitos autorais
       Veja o cabeçalho do código-fonte da página de manual para o(s) autor(es)
       e condições de direitos autorais. Note que estes podem ser diferentes de
       página para página!

VEJA TAMBÉM
       _syscall(2), syscall(2), syscalls(2), errno(3), intro(3),
       capabilities(7), credentials(7), feature_test_macros(7), mq_overview(7),
       path_resolution(7), pipe(7), pty(7), sem_overview(7), shm_overview(7),
       signal(7), socket(7), standards(7), symlink(7), system_data_types(7),
       sysvipc(7), time(7)

COLOFÃO
       Esta página faz parte da versão 5.13 do projeto Linux man-pages. Uma
       descrição do projeto, informações sobre relatórios de bugs e a versão
       mais recente desta página podem ser encontradas em
       https://www.kernel.org/doc/man-pages/.


TRADUÇÃO
       A tradução para português brasileiro desta página man foi criada por
       Rafael Fontenelle <rafaelff@gnome.org>

       Esta tradução é uma documentação livre; leia a Licença Pública Geral GNU
       Versão 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ ou posterior para as
       condições de direitos autorais.  Nenhuma responsabilidade é aceita.

       Se você encontrar algum erro na tradução desta página de manual, envie um
       e-mail para a lista de discussão de tradutores ⟨debian-l10n-portuguese@
       lists.debian.org⟩.



Linux                            27 agosto 2021                         INTRO(2)