'\" t .\" Copyright 2003 Walter Harms, 2004 Andries Brouwer . .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\" Created 2004-10-31. Text taken from a page by Walter Harms, 2003-09-08 .\" .TH drand48_r 3 2023-03-30 "Linux man-pages 6.04" .SH NAME drand48_r, erand48_r, lrand48_r, nrand48_r, mrand48_r, jrand48_r, srand48_r, seed48_r, lcong48_r \- generate uniformly distributed pseudo-random numbers reentrantly .SH LIBRARY Standard C library .RI ( libc ", " \-lc ) .SH SYNOPSIS .nf .B #include .PP .BI "int drand48_r(struct drand48_data *restrict " buffer , .BI " double *restrict " result ); .BI "int erand48_r(unsigned short " xsubi [3] "," .BI " struct drand48_data *restrict "buffer , .BI " double *restrict " result ");" .PP .BI "int lrand48_r(struct drand48_data *restrict " buffer , .BI " long *restrict " result ); .BI "int nrand48_r(unsigned short " xsubi[3] "," .BI " struct drand48_data *restrict "buffer , .BI " long *restrict " result ");" .PP .BI "int mrand48_r(struct drand48_data *restrict " buffer , .BI " long *restrict " result ");" .BI "int jrand48_r(unsigned short " xsubi[3] "," .BI " struct drand48_data *restrict " buffer , .BI " long *restrict " result ");" .PP .BI "int srand48_r(long int " seedval ", struct drand48_data *" buffer ");" .BI "int seed48_r(unsigned short " seed16v[3] ", struct drand48_data *" buffer ); .BI "int lcong48_r(unsigned short " param[7] ", struct drand48_data *" buffer ); .fi .PP .RS -4 Feature Test Macro Requirements for glibc (see .BR feature_test_macros (7)): .RE .PP All functions shown above: .\" .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 (): .nf /* glibc >= 2.19: */ _DEFAULT_SOURCE || /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE .fi .SH DESCRIPTION These functions are the reentrant analogs of the functions described in .BR drand48 (3). 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 zeros, or by calling one of the functions .BR srand48_r (), .BR seed48_r (), or .BR lcong48_r (). .SH RETURN VALUE The return value is 0. .SH ATTRIBUTES For an explanation of the terms used in this section, see .BR attributes (7). .ad l .nh .TS allbox; lbx 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 .hy .ad .sp 1 .SH STANDARDS GNU. .SH SEE ALSO .BR drand48 (3), .BR rand (3), .BR random (3)