intro(2) System Calls Manual intro(2) NOME intro - introducao as chamadas do sistema DESCRICAO A secao 2 do manual descreve as chamadas do sistema Linux. Uma chamada do sistema e um ponto de entrada no kernel do Linux. Geralmente, as chamadas do sistema nao sao chamadas diretamente: em vez disso, a maioria das chamadas do sistema tem funcoes wrappers correspondentes de bibliotecas C que executam as etapas necessarias (por exemplo, interceptar no modo kernel) para chamar a chamada do sistema. Portanto, fazer uma chamada do sistema e o mesmo que chamar uma funcao normal da biblioteca. Em muitos casos, a funcao wrapper de biblioteca C nao faz nada alem de: o copiar argumentos e o numero de chamadas do sistema exclusivas para os registradores em que o kernel os espera; o interceptar no modo kernel, quando o kernel faz o trabalho real da chamada do sistema; o definir errno se a chamada do sistema retornar um numero de erro quando o kernel retornar a CPU ao modo de usuario. No entanto, em alguns casos, uma funcao wrapper pode fazer muito mais do que isso, por exemplo, executando algum pre-processamento dos argumentos antes de capturar no modo kernel ou pos-processamento de valores retornados pela chamada do sistema. Nesse caso, as paginas de manual da Secao 2 geralmente tentam observar os detalhes da interface da API da biblioteca C (geralmente GNU) C e da chamada bruta do sistema. Geralmente, a DESCRICAO principal se concentrara na interface da biblioteca C, e as diferencas para a chamada do sistema sao abordadas na secao 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 numero 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 variavel 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 exito, mas algumas podem retornar valores diferentes de zero de uma chamada bem-sucedida. Os detalhes estao descritos nas paginas individuais do manual. Em alguns casos, o programador deve definir uma macro de teste de recurso para obter a declaracao de uma chamada do sistema a partir do arquivo de cabecalho especificado na secao SINOPSE da pagina man. (Onde necessario, essas macros de teste de recursos devem ser definidas antes da inclusao de qualquer arquivo de cabecalho.) Nesses casos, a macro necessaria e descrita na pagina man. Para obter mais informacoes sobre macros de teste de recursos, consulte feature_test_macros(7). PADROES Certos termos e abreviacoes sao usados para indicar variantes e padroes UNIX aos quais as chamadas nesta secao estao em conformidade. Vejo standards(7). NOTAS Chamando diretamente Na maioria dos casos, e desnecessario invocar uma chamada do sistema diretamente, mas ha momentos em que a biblioteca Standard C nao implementa uma boa funcao de wrapper para voce. Nesse caso, o programador deve chamar manualmente a chamada do sistema usando syscall(2). Historicamente, isso tambem era possivel usando uma das macros _syscall descritas em _syscall(2). Autores e condicoes de direitos autorais Veja o cabecalho do codigo-fonte da pagina de manual para o(s) autor(es) e condicoes de direitos autorais. Note que estes podem ser diferentes de pagina para pagina! VEJA TAMBEM _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) TRADUCAO A traducao para portugues brasileiro desta pagina man foi criada por Rafael Fontenelle Esta traducao e uma documentacao livre; leia a Licenca Publica Geral GNU Versao 3 ou posterior para as condicoes de direitos autorais. Nenhuma responsabilidade e aceita. Se voce encontrar algum erro na traducao desta pagina de manual, envie um e-mail para a lista de discussao de tradutores . Linux man-pages 6.06 31 outubro 2023 intro(2)