.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2007 Michael Kerrisk .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" 2007-10-23 mtk: moved the _syscallN specific material to the .\" new _syscall(2) page, and substantially enhanced and rewrote .\" the remaining material on this page. .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH INTRO 2 "2 agosto 2019" Linux "Manual do Programador do Linux" .SH NOME intro \- introdução às chamadas do sistema .SH 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. .PP Em muitos casos, a função wrapper de biblioteca C não faz nada além de: .IP * 3 copiar argumentos e o número de chamadas do sistema exclusivas para os registradores em que o kernel os espera; .IP * interceptar no modo kernel, quando o kernel faz o trabalho real da chamada do sistema; .IP * definir \fIerrno\fP se a chamada do sistema retornar um número de erro quando o kernel retornar a CPU ao modo de usuário. .PP 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. .PP Para obter uma lista das chamadas do sistema Linux, consulte \fBsyscalls\fP(2). .SH "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 \fBerrno\fP(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 \fIerrno\fP e retorna \-1 como o valor de retorno do wrapper. .PP 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. .PP 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 \fIqualquer\fP 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 \fBfeature_test_macros\fP(7). .SH "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 \fBstandards\fP(7). .SH NOTAS .SS "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 \fBsyscall\fP(2). Historicamente, isso também era possível usando uma das macros _syscall descritas em \fB_syscall\fP(2). .SS "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! .SH "VEJA TAMBÉM" .ad l .nh \fB_syscall\fP(2), \fBsyscall\fP(2), \fBsyscalls\fP(2), \fBerrno\fP(3), \fBintro\fP(3), \fBcapabilities\fP(7), \fBcredentials\fP(7), \fBfeature_test_macros\fP(7), \fBmq_overview\fP(7), \fBpath_resolution\fP(7), \fBpipe\fP(7), \fBpty\fP(7), \fBsem_overview\fP(7), \fBshm_overview\fP(7), \fBsignal\fP(7), \fBsocket\fP(7), \fBstandards\fP(7), \fBsymlink\fP(7), \fBsysvipc\fP(7), \fBtime\fP(7) .SH COLOFÃO Esta página faz parte da versão 5.04 do projeto Linux \fIman\-pages\fP. 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/. .SH TRADUÇÃO A tradução para português brasileiro desta página man foi criada por Rafael Fontenelle . Esta tradução é uma documentação livre; leia a .UR https://www.gnu.org/licenses/gpl-3.0.html Licença Pública Geral GNU Versão 3 .UE 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 .MT debian-l10n-portuguese@\:lists.\:debian.\:org a lista de discussão de tradutores .ME .