1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- .\" Copyright (c) 2004 David Schultz <[email protected]>
- .\" All rights reserved.
- .\"
- .\" Redistribution and use in source and binary forms, with or without
- .\" modification, are permitted provided that the following conditions
- .\" are met:
- .\" 1. Redistributions of source code must retain the above copyright
- .\" notice, this list of conditions and the following disclaimer.
- .\" 2. Redistributions in binary form must reproduce the above copyright
- .\" notice, this list of conditions and the following disclaimer in the
- .\" documentation and/or other materials provided with the distribution.
- .\"
- .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
- .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
- .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- .\" SUCH DAMAGE.
- .\"
- .\" $FreeBSD: src/lib/msun/man/feenableexcept.3,v 1.1 2005/03/16 19:04:28 das Exp $
- .\"
- .Dd March 16, 2005
- .Dt FEENABLEEXCEPT 3
- .Os
- .Sh NAME
- .Nm feenableexcept ,
- .Nm fedisableexcept ,
- .Nm fegetexcept
- .Nd floating-point exception masking
- .Sh LIBRARY
- .Lb libm
- .Sh SYNOPSIS
- .In fenv.h
- .Fd "#pragma STDC FENV_ACCESS ON"
- .Ft int
- .Fn feenableexcept "int excepts"
- .Ft int
- .Fn fedisableexcept "int excepts"
- .Ft int
- .Fn fegetexcept "void"
- .Sh DESCRIPTION
- The
- .Fn feenableexcept
- and
- .Fn fedisableexcept
- functions
- unmask and mask (respectively) exceptions specified in
- .Fa excepts .
- The
- .Fn fegetexcept
- function
- returns the current exception mask.
- All exceptions are masked by default.
- .Pp
- Floating-point operations that produce unmasked exceptions will trap, and a
- .Dv SIGFPE
- will be delivered to the process.
- By installing a signal handler for
- .Dv SIGFPE ,
- applications can take appropriate action immediately without
- testing the exception flags after every operation.
- Note that the trap may not be immediate, but it should occur
- before the next floating-point instruction is executed.
- .Pp
- For all of these functions, the possible types of exceptions
- include those described in
- .Xr fenv 3 .
- Some architectures may define other types of floating-point exceptions.
- .Sh RETURN VALUES
- The
- .Fn feenableexcept ,
- .Fn fedisableexcept ,
- and
- .Fn fegetexcept
- functions return a bitmap of the exceptions that were unmasked
- prior to the call.
- .Sh SEE ALSO
- .Xr sigaction 2 ,
- .Xr feclearexcept 3 ,
- .Xr feholdexcept 3 ,
- .Xr fenv 3 ,
- .Xr feupdateenv 3
- .Sh BUGS
- Functions in the standard library may trigger exceptions multiple
- times as a result of intermediate computations;
- however, they generally do not trigger spurious exceptions.
- .Pp
- No interface is provided to permit exceptions to be handled in
- nontrivial ways.
- There is no uniform way for an exception handler to access
- information about the exception-causing instruction, or
- to determine whether that instruction should be reexecuted
- after returning from the handler.
|