.\" Copyright 2003 Walter Harms, 2004 Andries Brouwer <aeb@cwi.nl>.
.\"
+.\" %%%LICENSE_START(VERBATIM)
.\" Permission is granted to make and distribute verbatim copies of this
.\" manual provided the copyright notice and this permission notice are
.\" preserved on all copies.
.\"
.\" Formatted or processed versions of this manual, if unaccompanied by
.\" the source, must acknowledge the copyright and authors of this work.
+.\" %%%LICENSE_END
.\"
.\" Created 2004-10-31. Text taken from a page by Walter Harms, 2003-09-08
.\"
-.TH DRAND48_R 3 2007-07-26 "GNU" "Linux Programmer's Manual"
+.TH DRAND48_R 3 2017-09-15 "GNU" "Linux Programmer's Manual"
.SH NAME
drand48_r, erand48_r, lrand48_r, nrand48_r, mrand48_r, jrand48_r,
srand48_r, seed48_r, lcong48_r
.SH SYNOPSIS
.nf
.B #include <stdlib.h>
-.sp
+.PP
.BI "int drand48_r(struct drand48_data *" buffer ", double *" result );
-.sp
+.PP
.BI "int erand48_r(unsigned short " xsubi [3] ","
-.br
.BI " struct drand48_data *"buffer ", double *" result ");"
-.sp
+.PP
.BI "int lrand48_r(struct drand48_data *" buffer ", long int *" result );
-.sp
+.PP
.BI "int nrand48_r(unsigned short int " xsubi[3] ","
-.br
.BI " struct drand48_data *"buffer ", long int *" result ");"
-.sp
+.PP
.BI "int mrand48_r(struct drand48_data *" buffer ",long int *" result ");"
-.sp
+.PP
.BI "int jrand48_r(unsigned short int " xsubi[3] ","
-.br
.BI " struct drand48_data *" buffer ", long int *" result ");"
-.sp
+.PP
.BI "int srand48_r(long int " seedval ", struct drand48_data *" buffer ");"
-.sp
+.PP
.BI "int seed48_r(unsigned short int " seed16v[3] ","
-.br
.BI " struct drand48_data *" buffer ");"
-.sp
+.PP
.BI "int lcong48_r(unsigned short int " param[7] ","
-.br
.BI " struct drand48_data *" buffer ");"
.fi
-.sp
+.PP
.in -4n
Feature Test Macro Requirements for glibc (see
.BR feature_test_macros (7)):
.in
-.sp
+.PP
.ad l
-All functions described on this page:
+All functions shown above:
.\" .BR drand48_r (),
.\" .BR erand48_r (),
.\" .BR lrand48_r (),
.\" .BR srand48_r (),
.\" .BR seed48_r (),
.\" .BR lcong48_r ():
-_SVID_SOURCE || _BSD_SOURCE || _XOPEN_SOURCE
+ /* Glibc since 2.19: */ _DEFAULT_SOURCE
+ || /* Glibc versions <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE
.ad b
.SH DESCRIPTION
These functions are the reentrant analogs of the functions described in
Instead of modifying the global random generator state, they use
the supplied data
.IR buffer .
-
+.PP
Before the first use, this struct must be initialized, for example,
-by filling it with zeroes, or by calling one of the functions
+by filling it with zeros, or by calling one of the functions
.BR srand48_r (),
.BR seed48_r (),
or
.BR lcong48_r ().
-.SH "RETURN VALUE"
+.SH RETURN VALUE
The return value is 0.
-.SH "CONFORMING TO"
+.SH ATTRIBUTES
+For an explanation of the terms used in this section, see
+.BR attributes (7).
+.ad l
+.TS
+allbox;
+lbw25 lb lb
+l l l.
+Interface Attribute Value
+T{
+.BR drand48_r (),
+.BR erand48_r (),
+.BR lrand48_r (),
+.BR nrand48_r (),
+.BR mrand48_r (),
+.BR jrand48_r (),
+.BR srand48_r (),
+.BR seed48_r (),
+.BR lcong48_r ()
+T} Thread safety MT-Safe race:buffer
+.TE
+.ad
+.SH CONFORMING TO
These functions are GNU extensions and are not portable.
-.SH "SEE ALSO"
+.SH SEE ALSO
.BR drand48 (3),
.BR rand (3),
.BR random (3)