# drand48_r

## 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
    


## LIBRARY



           Standard C library (_libc_ , _-lc_)
    


## SYNOPSIS



           **#include <stdlib.h>**
    
           **int drand48_r(struct drand48_data *restrict** _buffer_**,**
                         **double *restrict** _result_**);**
           **int erand48_r(unsigned short** _xsubi_**[3]**_,_
                         **struct drand48_data *restrict** _buffer_**,**
                         **double *restrict** _result_**);**
    
           **int lrand48_r(struct drand48_data *restrict** _buffer_**,**
                         **long *restrict** _result_**);**
           **int nrand48_r(unsigned short** _xsubi[3]_**,**
                         **struct drand48_data *restrict** _buffer_**,**
                         **long *restrict** _result_**);**
    
           **int mrand48_r(struct drand48_data *restrict** _buffer_**,**
                         **long *restrict** _result_**);**
           **int jrand48_r(unsigned short** _xsubi[3]_**,**
                         **struct drand48_data *restrict** _buffer_**,**
                         **long *restrict** _result_**);**
    
           **int srand48_r(long int** _seedval_**, struct drand48_data ***_buffer_**);**
           **int seed48_r(unsigned short** _seed16v[3]_**, struct drand48_data ***_buffer_**);**
           **int lcong48_r(unsigned short** _param[7]_**, struct drand48_data ***_buffer_**);**
    
       Feature Test Macro Requirements for glibc (see
       feature_test_macros(7)):
    
           All functions shown above:
               /* glibc >= 2.19: */ _DEFAULT_SOURCE
                   || /* glibc <= 2.19: */ _SVID_SOURCE || _BSD_SOURCE
    


## DESCRIPTION



           These functions are the reentrant analogs of the functions
           described in drand48(3).  Instead of modifying the global random
           generator state, they use the supplied data _buffer_.
    
           Before the first use, this struct must be initialized, for
           example, by filling it with zeros, or by calling one of the
           functions **srand48_r**(), **seed48_r**(), or **lcong48_r**().
    


## RETURN VALUE



           The return value is 0.
    


## ATTRIBUTES



           For an explanation of the terms used in this section, see
           attributes(7).
           ┌──────────────────────────┬───────────────┬─────────────────────┐
           │ **Interface** │ **Attribute** │ **Value** │
           ├──────────────────────────┼───────────────┼─────────────────────┤
           │ **drand48_r**(),             │ Thread safety │ MT-Safe race:buffer │
           │ **erand48_r**(),             │               │                     │
           │ **lrand48_r**(),             │               │                     │
           │ **nrand48_r**(),             │               │                     │
           │ **mrand48_r**(),             │               │                     │
           │ **jrand48_r**(),             │               │                     │
           │ **srand48_r**(), **seed48_r**(), │               │                     │
           │ **lcong48_r**()              │               │                     │
           └──────────────────────────┴───────────────┴─────────────────────┘
    


## STANDARDS



           GNU.
    


* * *