# div (3)

# NAME

div, ldiv, lldiv, imaxdiv - compute quotient and remainder of an integer division# SYNOPSIS

#include <stdlib.h>

div_t div(intnumerator, intdenominator);ldiv_t ldiv(longnumerator, longdenominator);lldiv_t lldiv(long longnumerator, long longdenominator);

#include <inttypes.h>

imaxdiv_t imaxdiv(intmax_tnumerator, intmax_tdenominator);

Feature Test Macro Requirements for glibc (see

**feature_test_macros**(7)):

**lldiv**():

_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L

# DESCRIPTION

The**div**() function computes the value

*numerator*/

*denominator*and returns the quotient and remainder in a structure named

*div_t*that contains two integer members (in unspecified order) named

*quot*and

*rem*. The quotient is rounded toward zero. The result satisfies

*quot**

*denominator*+

*rem*=

*numerator*. The

**ldiv**(),

**lldiv**(), and

**imaxdiv**() functions do the same, dividing numbers of the indicated type and returning the result in a structure of the indicated name, in all cases with fields

*quot*and

*rem*of the same type as the function arguments.

# RETURN VALUE

The*div_t*(etc.) structure.

# ATTRIBUTES

For an explanation of the terms used in this section, see**attributes**(7).

Interface | Attribute | Value |

div (), ldiv (), lldiv (), imaxdiv () | Thread safety | MT-Safe |

# CONFORMING TO

POSIX.1-2001, POSIX.1-2008, C89, C99, SVr4, 4.3BSD. The functions**lldiv**() and

**imaxdiv**() were added in C99.

# EXAMPLE

Afterdiv_t q = div(-5, 3);

the values

*q.quot*and

*q.rem*are -1 and -2, respectively.

# SEE ALSO

**abs**(3),

**remainder**(3)