1*d8b6461fSFaraz Vahedi.\" 2*d8b6461fSFaraz Vahedi.\" Copyright (c) 2026 Faraz Vahedi <kfv@FreeBSD.org> 3*d8b6461fSFaraz Vahedi.\" 4*d8b6461fSFaraz Vahedi.\" SPDX-License-Identifier: BSD-2-Clause 5*d8b6461fSFaraz Vahedi.\" 6*d8b6461fSFaraz Vahedi.Dd August 31, 2026 7*d8b6461fSFaraz Vahedi.Dt FEGETMODE 3 8*d8b6461fSFaraz Vahedi.Os 9*d8b6461fSFaraz Vahedi.Sh NAME 10*d8b6461fSFaraz Vahedi.Nm fegetmode , 11*d8b6461fSFaraz Vahedi.Nm fesetmode 12*d8b6461fSFaraz Vahedi.Nd save and restore floating-point control modes 13*d8b6461fSFaraz Vahedi.Sh LIBRARY 14*d8b6461fSFaraz Vahedi.Lb libm 15*d8b6461fSFaraz Vahedi.Sh SYNOPSIS 16*d8b6461fSFaraz Vahedi.In fenv.h 17*d8b6461fSFaraz Vahedi.Fd "#pragma STDC FENV_ACCESS ON" 18*d8b6461fSFaraz Vahedi.Ft int 19*d8b6461fSFaraz Vahedi.Fn fegetmode "femode_t *modep" 20*d8b6461fSFaraz Vahedi.Ft int 21*d8b6461fSFaraz Vahedi.Fn fesetmode "const femode_t *modep" 22*d8b6461fSFaraz Vahedi.Sh DESCRIPTION 23*d8b6461fSFaraz VahediThe 24*d8b6461fSFaraz Vahedi.Vt femode_t 25*d8b6461fSFaraz Vaheditype represents the dynamic floating-point control modes, 26*d8b6461fSFaraz Vahediincluding the rounding direction and, where supported, exception 27*d8b6461fSFaraz Vahedimasks and other implementation-defined modes. 28*d8b6461fSFaraz Vahedi.Pp 29*d8b6461fSFaraz VahediThe 30*d8b6461fSFaraz Vahedi.Fn fegetmode 31*d8b6461fSFaraz Vahedifunction stores the current control modes in the object 32*d8b6461fSFaraz Vahedipointed to by 33*d8b6461fSFaraz Vahedi.Fa modep . 34*d8b6461fSFaraz Vahedi.Pp 35*d8b6461fSFaraz VahediThe 36*d8b6461fSFaraz Vahedi.Fn fesetmode 37*d8b6461fSFaraz Vahedifunction establishes the control modes represented by 38*d8b6461fSFaraz Vahedi.Fa modep . 39*d8b6461fSFaraz VahediThe argument 40*d8b6461fSFaraz Vahedi.Fa modep 41*d8b6461fSFaraz Vahedimust point to an object set by a prior call to 42*d8b6461fSFaraz Vahedi.Fn fegetmode , 43*d8b6461fSFaraz Vahedior equal 44*d8b6461fSFaraz Vahedi.Dv FE_DFL_MODE . 45*d8b6461fSFaraz Vahedi.Dv FE_DFL_MODE 46*d8b6461fSFaraz Vahediexpands to a pointer to the default control modes 47*d8b6461fSFaraz Vahedi.Po 48*d8b6461fSFaraz Vahediinstalled at program startup 49*d8b6461fSFaraz Vahedi.Pc . 50*d8b6461fSFaraz Vahedi.Sh RETURN VALUES 51*d8b6461fSFaraz VahediThe 52*d8b6461fSFaraz Vahedi.Fn fegetmode 53*d8b6461fSFaraz Vahediand 54*d8b6461fSFaraz Vahedi.Fn fesetmode 55*d8b6461fSFaraz Vahedifunctions return 0 if they succeed, and non-zero otherwise; 56*d8b6461fSFaraz Vahedihowever, the present implementation always succeeds. 57*d8b6461fSFaraz Vahedi.Sh SEE ALSO 58*d8b6461fSFaraz Vahedi.Xr fenv 3 , 59*d8b6461fSFaraz Vahedi.Xr fegetround 3 , 60*d8b6461fSFaraz Vahedi.Xr fesetround 3 61*d8b6461fSFaraz Vahedi.Sh STANDARDS 62*d8b6461fSFaraz VahediThe 63*d8b6461fSFaraz Vahedi.Fn fegetmode 64*d8b6461fSFaraz Vahediand 65*d8b6461fSFaraz Vahedi.Fn fesetmode 66*d8b6461fSFaraz Vahedifunctions conform to 67*d8b6461fSFaraz Vahedi.St -isoC-2023 . 68*d8b6461fSFaraz Vahedi.Sh HISTORY 69*d8b6461fSFaraz VahediThese routines first appeared in 70*d8b6461fSFaraz Vahedi.Fx 16.0 . 71