The Open Group Base Specifications Issue 7
IEEE Std 1003.1-2008, 2016 Edition
Copyright © 2001-2016 The IEEE and The Open Group

#### NAME

> fegetround, fesetround - get and set current rounding direction

#### SYNOPSIS

> ``#include <fenv.h>
> int fegetround(void);
> int fesetround(int` round`);
> ``

#### DESCRIPTION

> [CX] The functionality described on this reference page is aligned with the ISO C standard. Any conflict between the requirements described here and the ISO C standard is unintentional. This volume of POSIX.1-2008 defers to the ISO C standard.

> The fegetround() function shall get the current rounding direction.

> The fesetround() function shall establish the rounding direction represented by its argument round. If the argument is not equal to the value of a rounding direction macro, the rounding direction is not changed.

#### RETURN VALUE

> The fegetround() function shall return the value of the rounding direction macro representing the current rounding direction or a negative value if there is no such rounding direction macro or the current rounding direction is not determinable.

> The fesetround() function shall return a zero value if and only if the requested rounding direction was established.

#### ERRORS

> No errors are defined.

The following sections are informative.

#### EXAMPLES

> The following example saves, sets, and restores the rounding direction, reporting an error and aborting if setting the rounding direction fails:

>     #include <fenv.h>
>     #include <assert.h>
>     void f(int round_dir)
>     {
>         #pragma STDC FENV_ACCESS ON
>         int save_round;
>         int setround_ok;
>         save_round = fegetround();
>         setround_ok = fesetround(round_dir);
>         assert(setround_ok == 0);
>         /* ... */
>         fesetround(save_round);
>         /* ... */
>     }

#### APPLICATION USAGE

> None.

#### RATIONALE

> None.

#### FUTURE DIRECTIONS

> None.

#### SEE ALSO

> XBD <fenv.h>

#### CHANGE HISTORY

> First released in Issue 6. Derived from the ISO/IEC 9899:1999 standard.

> ISO/IEC 9899:1999 standard, Technical Corrigendum 1 is incorporated.

End of informative text.

return to top of page

UNIX ® is a registered Trademark of The Open Group.
POSIX ® is a registered Trademark of The IEEE.
Copyright © 2001-2016 The IEEE and The Open Group, All Rights Reserved
[ Main Index | XBD | XSH | XCU | XRAT ]