.\" -*- 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 .