## NAME

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

## SYNOPSIS

**#include
<stdlib.h>**

**div_t
div(int** *numerator***, int**
*denominator***);
ldiv_t ldiv(long**

*numerator*

**, long**

*denominator*

**);**

lldiv_t lldiv(long long

lldiv_t lldiv(long long

*numerator*

**, long long**

*denominator*

**);**

**#include
<inttypes.h>**

**imaxdiv_t
imaxdiv(intmax_t** *numerator***, intmax_t**
*denominator***);**

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).

## CONFORMING TO

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

## EXAMPLES

After

div_t q = div(-5, 3);

the values
*q.quot* and *q.rem* are -1 and -2,
respectively.

## SEE ALSO

## COLOPHON

This page is
part of release 5.09 of the Linux *man-pages* project.
A description of the project, information about reporting
bugs, and the latest version of this page, can be found at
https://www.kernel.org/doc/man-pages/.