.\" -*- coding: UTF-8 -*-
.\" Copyright (c) 2000 Andries Brouwer (aeb@cwi.nl)
.\"
.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" the License, or (at your option) any later version.
.\"
.\" The GNU General Public License's references to "object code"
.\" and "executables" are to be interpreted as the output of any
.\" document formatting or typesetting system, including
.\" intermediate and printed output.
.\"
.\" This manual is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
.\" License along with this manual; if not, see
.\" .
.\" %%%LICENSE_END
.\"
.\" 2000-08-14 added GNU additions from Andreas Jaeger
.\" 2000-12-05 some changes inspired by acahalan's remarks
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH FENV 3 "15 setembro 2017" Linux "Manual do Programador do Linux"
.SH NOME
feclearexcept, fegetexceptflag, feraiseexcept, fesetexceptflag,
fetestexcept, fegetenv, fegetround, feholdexcept, fesetround, fesetenv,
feupdateenv, feenableexcept, fedisableexcept, fegetexcept \- floating\-point
rounding and exception handling
.SH SINOPSE
.nf
\fB#include \fP
.PP
\fBint feclearexcept(int \fP\fIexcepts\fP\fB);\fP
\fBint fegetexceptflag(fexcept_t *\fP\fIflagp\fP\fB, int \fP\fIexcepts\fP\fB);\fP
\fBint feraiseexcept(int \fP\fIexcepts\fP\fB);\fP
\fBint fesetexceptflag(const fexcept_t *\fP\fIflagp\fP\fB, int \fP\fIexcepts\fP\fB);\fP
\fBint fetestexcept(int \fP\fIexcepts\fP\fB);\fP
.PP
\fBint fegetround(void);\fP
\fBint fesetround(int \fP\fIrounding_mode\fP\fB);\fP
.PP
\fBint fegetenv(fenv_t *\fP\fIenvp\fP\fB);\fP
\fBint feholdexcept(fenv_t *\fP\fIenvp\fP\fB);\fP
\fBint fesetenv(const fenv_t *\fP\fIenvp\fP\fB);\fP
\fBint feupdateenv(const fenv_t *\fP\fIenvp\fP\fB);\fP
.fi
.PP
Vincule com \fI\-lm\fP.
.SH DESCRIÇÃO
Estas onze funções foram definidas no C99, e descrevem o tratamento de
arredondamento e exceções de ponto flutuante (estouro de representação,
divisão por zero, etc.).
.SS Exceções
A exceção \fIdivide\-by\-zero\fP ocorre quando uma operação sobre números finitos
produz infinito como resposta exata.
.PP
A exceção \fIoverflow\fP ocorre quando um resultado tem de ser representado
como um número de ponto flutuante, mas tem valor absoluto (muito) maior que
o maior número de ponto flutuante (finito) que é representável.
.PP
A exceção \fIunderflow\fP ocorre quando um resultado tem de ser representado
como um número de ponto flutuante, mas tem valor absoluto menor que o menor
número de ponto flutuante positivo normalizado (e perderia muita precisão se
representado como um número denormalizado).
.PP
A exceção \fIinexact\fP ocorre quando o resultado arredondado de uma operação
não é igual ao resultado de precisão infinita. Ela pode ocorrer quando quer
que \fIoverflow\fP ou \fIunderflow\fP ocorram.
.PP
A exceção \fIinvalid\fP ocorre quando não há resultado bem definido para uma
operação, como para 0/0 ou infinito \- infinito ou sqrt(\-1).
.SS "Tratamento de Exceções"
Exceções são representadas de duas formas: como um único bit (exceção
presente/ausente), e esses bits correspondem em alguma forma definida pela
implementação com posições de bit em um inteiro, e também como uma estrutura
opaca que pode conter mais informação sobre a exceção (talvez o endereço de
código onde ela ocorreu).
.PP
Cada uma das macros \fBFE_DIVBYZERO\fP, \fBFE_INEXACT\fP, \fBFE_INVALID\fP,
\fBFE_OVERFLOW\fP, \fBFE_UNDERFLOW\fP é definida quando a implementação suporta
tratamento da exceção correspondente, e, se sim, então define o(s) bit(s)
correspondente(s), de forma que se possa chamar funções de tratamento de
exceções, por exemplo, usando o argumento inteiro
\fBFE_OVERFLOW\fP|\fBFE_UNDERFLOW\fP. Outras exceções podem ser suportadas. A
macro \fBFE_ALL_EXCEPT\fP é o OR bit a bit de todos os bits correspondendo a
exceções suportadas.
.PP
A função \fBfeclearexcept\fP() desabilita as exceções suportadas representadas
pelos bits no seu argumento.
.PP
A função \fBfegetexceptflag\fP() armazena uma representação do estado dos
indicadores de exceção representados pelo argumento \fIexcepts\fP no objeto
opaco \fI*flagp\fP.
.PP
A função \fBferaiseexcept\fP() dispara as exceções suportadas representadas
pelos bits em \fIexcepts\fP.
.PP
A função \fBfesetexceptflag\fP() define o estado completo para as exceções
representadas por \fIexcepts\fP para o valor \fI*flagp\fP. Esse valor deve ter
sido obtido por uma chamada anterior a \fBfegetexceptflag\fP() com um último
argumento que contivesse todos os bits em \fIexcepts\fP.
.PP
A função \fBfetestexcept\fP() retorna uma palavra na qual os bits definidos são
os definidos no argumento \fIexcepts\fP e para os quais a exceção
correspondente está atualmente habilitada.
.SS "Rounding mode"
The rounding mode determines how the result of floating\-point operations is
treated when the result cannot be exactly represented in the significand.
Various rounding modes may be provided: round to nearest (the default),
round up (toward positive infinity), round down (toward negative infinity),
and round toward zero.
.PP
Cada uma das macros \fBFE_TONEAREST\fP, \fBFE_UPWARD\fP, \fBFE_DOWNWARD\fP e
\fBFE_TOWARDZERO\fP é definida quando a implementação suporta obter e definir a
direção de arredondamento correspondente.
.PP
A função \fBfegetround\fP() retorna a macro correspondente ao modo de
arredondamento atual.
.PP
A função \fBfesetround\fP() define o modo de arredondamento como especificado
por seu argumento e retorna zero quando for bem sucedida.
.PP
C99 and POSIX.1\-2008 specify an identifier, \fBFLT_ROUNDS\fP, defined in
\fI\fP, which indicates the implementation\-defined rounding
behavior for floating\-point addition. This identifier has one of the
following values:
.IP \-1
The rounding mode is not determinable.
.IP 0
Rounding is toward 0.
.IP 1
Rounding is toward nearest number.
.IP 2
Rounding is toward positive infinity.
.IP 3
Rounding is toward negative infinity.
.PP
Other values represent machine\-dependent, nonstandard rounding modes.
.PP
The value of \fBFLT_ROUNDS\fP should reflect the current rounding mode as set
by \fBfesetround\fP() (but see BUGS).
.SS "Ambiente de Ponto Flutuante"
O ambiente de ponto flutuante inteiro, incluindo modos de controle e
indicadores de estado, pode ser tratado como um objeto opaco, de tipo
\fIfenv_t\fP. O ambiente padrão é denotado por \fBFE_DFL_ENV\fP (de tipo \fIconst
fenv_t\ *\fP). Essa é a definição do ambiente ao início do programa e é
definida por ISO C como tendo arredondamento para o mais próximo, todas as
exceções desabilitadas e um modo 'non\-stop' (continuar nas exceções).
.PP
A função \fBfegetenv\fP() salva o ambiente de ponto flutuante atual no objeto
\fI*envp\fP.
.PP
A função \fBfeholdexcept\fP() faz o mesmo, então zera todos indicadores de
exceção, e define um modo 'non\-stop' (continuar nas exceções), se
disponível. Ela retorna zero quando bem sucedida.
.PP
A função \fBfesetenv\fP() restaura o ambiente de ponto flutuante do objeto
\fI*envp\fP. Esse objeto deve ser reconhecidamente válido, por exemplo, o
resultado de uma chamada a \fBfegetenv\fP() ou \fBfeholdexcept\fP() ou igual a
\fBFE_DFL_ENV\fP. Essa chamada não dispara exceções.
.PP
A função \fBfeupdateenv\fP() instala o ambiente de ponto flutuante representado
pelo objeto \fI*envp\fP, exceto que as exceções que estão atualmente disparadas
não são desabilitadas. Depois de chamar essa função, as exceções disparadas
serão o OR bit a bit daquelas previamente definidas com aquelas em
\fI*envp\fP. Como antes, o objeto \fI*envp\fP deve ser reconhecido como sendo
válido.
.SH "VALOR DE RETORNO"
.\" Earlier seven of these functions were listed as returning void.
.\" This was corrected in Corrigendum 1 (ISO/IEC 9899:1999/Cor.1:2001(E))
.\" of the C99 Standard.
These functions return zero on success and nonzero if an error occurred.
.SH VERSÕES
Estas funções apareceram pela primeira vez no glibc desde a versão 2.1.
.SH ATRIBUTOS
Para uma explicação dos termos usados nesta seção, consulte
\fBattributes\fP(7).
.nh
.ad l
.TS
allbox;
lb lb lb
lw35 l l.
Interface Atributo Valor
T{
\fBfeclearexcept\fP(),
\fBfegetexceptflag\fP(),
\fBferaiseexcept\fP(),
\fBfesetexceptflag\fP(),
\fBfetestexcept\fP(),
\fBfegetround\fP(),
\fBfesetround\fP(),
\fBfegetenv\fP(),
\fBfeholdexcept\fP(),
\fBfesetenv\fP(),
\fBfeupdateenv\fP(),
\fBfeenableexcept\fP(),
\fBfedisableexcept\fP(),
\fBfegetexcept\fP()
T} Thread safety T{
MT\-Safe
T}
.TE
.ad
.hy
.SH "DE ACORDO COM"
IEC 60559 (IEC 559:1989), ANSI/IEEE 854, C99, POSIX.1\-2001.
.SH NOTAS
.SS "Glibc notes"
If possible, the GNU C Library defines a macro \fBFE_NOMASK_ENV\fP which
represents an environment where every exception raised causes a trap to
occur. You can test for this macro using \fB#ifdef\fP. It is defined only if
\fB_GNU_SOURCE\fP is defined. The C99 standard does not define a way to set
individual bits in the floating\-point mask, for example, to trap on specific
flags. Since version 2.2, glibc supports the functions \fBfeenableexcept\fP()
and \fBfedisableexcept\fP() to set individual floating\-point traps, and
\fBfegetexcept\fP() to query the state.
.PP
.nf
\fB#define _GNU_SOURCE\fP /* Veja feature_test_macros(7) */
\fB#include \fP
.PP
\fBint feenableexcept(int \fP\fIexcepts\fP\fB);\fP
\fBint fedisableexcept(int \fP\fIexcepts\fP\fB);\fP
\fBint fegetexcept(void);\fP
.fi
.PP
As funções \fBfeenableexcept\fP() e \fBfedisableexcept\fP() habilitam
(desabilitam) capturas para cada uma das exceções representadas por
\fIexcepts\fP e retornam o conjunto anterior de exceções habilitadas quando bem
sucedida, e \-1 caso contrário. A função \fBfegetexcept\fP() retorna o conjunto
de todas as exceções atualmente habilitadas.
.SH BUGS
.\" Aug 08, glibc 2.8
.\" See http://gcc.gnu.org/ml/gcc/2002-02/msg01535.html
C99 specifies that the value of \fBFLT_ROUNDS\fP should reflect changes to the
current rounding mode, as set by \fBfesetround\fP(). Currently, this does not
occur: \fBFLT_ROUNDS\fP always has the value 1.
.SH "VEJA TAMBÉM"
\fBmath_error\fP(7)
.SH COLOFÃO
Esta página faz parte da versão 5.10 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/.
.PP
.SH TRADUÇÃO
A tradução para português brasileiro desta página man foi criada por
Marcelo M. de Abreu
e
André Luiz Fassone
.
.PP
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.
.PP
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 .