# ldiv(3C)

## NAME

div, ldiv, lldiv - compute the quotient and remainder

## SYNOPSIS

#include <stdlib.h>
div_t div(int *numer*, int *denom*);
ldiv_t ldiv(long int *numer*, long int *denom*);
lldiv_t lldiv(long long *numer*, long long *denom*);

## DESCRIPTION

The div() function computes the quotient and remainder of
the division of the numerator *numer* by the denominator
*denom*. It provides a well-defined semantics for the signed
integral division and remainder operations, unlike the
implementation-defined semantics of the built-in operations.
The sign of the resulting quotient is that of the algebraic
quotient, and if the division is inexact, the magnitude of
the resulting quotient is the largest integer less than the
magnitude of the algebraic quotient. If the result cannot be
represented, the behavior is undefined; otherwise, *quotient*
* *denom* + *remainder* will equal *numer*.
The ldiv() and lldiv() functions are similar to div(),
except that the arguments and the members of the returned
structure are different. The ldiv() function returns a
structure of type ldiv_t and has type long int. The lldiv()
function returns a structure of type lldiv_t and has type
long long.

## RETURN VALUES

The div() function returns a structure of type div_t,
comprising both the quotient and remainder:
int quot; /*quotient*/
int rem; /*remainder*/
The ldiv() function returns a structure of type ldiv_t and
lldiv() returns a structure of type lldiv_t, comprising both
the quotient and remainder:
long int quot; /*quotient*/
long int rem; /*remainder*/

## ATTRIBUTES

See **attributes(5)** for descriptions of the following attri-
butes:
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________*|*_____________________________*|*
| MT-Level | MT-Safe |
|_____________________________*|*_____________________________*|*

## SEE ALSO

**attributes(5)**

Man(1) output converted with
man2html