addon functions

Lewin Edwards in his dosfs file system uses the ldiv() functions shown below: sector = ldiv(offset, SECTOR_SIZE).quot and offset = ldiv(offset, SECTOR_SIZE).rem Anybody know how this is declared or, maybe, defined?

Hul

Reply to
Hul Tytus
Loading thread data ...

Am 01.08.2023 um 23:21 schrieb Hul Tytus:

Seriously? Does every C compiler you use come without a manual?

How else could you possibly find it hard to discover the declaration and semantics of a 33+ years old C standard library function like that?

Reply to
Hans-Bernhard Bröker

$ man ldiv

------------------------------------------------------------------------------ div(3) Library Functions Manual div(3)

NAME div, ldiv, lldiv, imaxdiv - compute quotient and remainder of an inte‐ ger division

LIBRARY Standard C library (libc, -lc)

SYNOPSIS #include <stdlib.h>

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

#include <inttypes.h>

imaxdiv_t imaxdiv(intmax_t numerator, intmax_t denominator);

[...]
Reply to
Grant Edwards

It's a standard C library function. You can see its definition in the C standards (draft versions of all modern C standards are freely available online). A good reference for C is the "cppreference" site, with the exact page here being:

formatting link

The "div" functions are almost never used these days - any decent compiler will do as good or better when the code is expressed simply as:

sector = offset / SECTOR_SIZE; offset = offset % SECTOR_SIZE;

But the "div" functions made sense with older and poorer compilers.

Reply to
David Brown

Thanks Grant. I'd never seen those before and assumed they were Lewin's creation.

Hul

Grant Edwards snipped-for-privacy@> > Lewin Edwards in his dosfs file system uses the ldiv() functions shown below:

Reply to
Hul Tytus

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.