<html lang="en">
<head>
<title>ISO Random - The GNU C Library</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="The GNU C Library">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Pseudo_002dRandom-Numbers.html#Pseudo_002dRandom-Numbers" title="Pseudo-Random Numbers">
<link rel="next" href="BSD-Random.html#BSD-Random" title="BSD Random">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU C library.

This is Edition 0.12, last updated 2007-10-27,
of `The GNU C Library Reference Manual', for version
2.8 (Sourcery G++ Lite 2011.03-41).

Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002,
2003, 2007, 2008, 2010 Free Software Foundation, Inc.

Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with the
Invariant Sections being ``Free Software Needs Free Documentation''
and ``GNU Lesser General Public License'', the Front-Cover texts being
``A GNU Manual'', and with the Back-Cover Texts as in (a) below.  A
copy of the license is included in the section entitled "GNU Free
Documentation License".

(a) The FSF's Back-Cover Text is: ``You have the freedom to
copy and modify this GNU manual.  Buying copies from the FSF
supports it in developing GNU and promoting software freedom.''-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
  pre.display { font-family:inherit }
  pre.format  { font-family:inherit }
  pre.smalldisplay { font-family:inherit; font-size:smaller }
  pre.smallformat  { font-family:inherit; font-size:smaller }
  pre.smallexample { font-size:smaller }
  pre.smalllisp    { font-size:smaller }
  span.sc    { font-variant:small-caps }
  span.roman { font-family:serif; font-weight:normal; } 
  span.sansserif { font-family:sans-serif; font-weight:normal; } 
--></style>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="ISO-Random"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="BSD-Random.html#BSD-Random">BSD Random</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Pseudo_002dRandom-Numbers.html#Pseudo_002dRandom-Numbers">Pseudo-Random Numbers</a>
<hr>
</div>

<h4 class="subsection">19.8.1 ISO C Random Number Functions</h4>

<p>This section describes the random number functions that are part of
the ISO&nbsp;C<!-- /@w --> standard.

   <p>To use these facilities, you should include the header file
<samp><span class="file">stdlib.h</span></samp> in your program. 
<a name="index-stdlib_002eh-2285"></a>
<!-- stdlib.h -->
<!-- ISO -->

<div class="defun">
&mdash; Macro: int <b>RAND_MAX</b><var><a name="index-RAND_005fMAX-2286"></a></var><br>
<blockquote><p>The value of this macro is an integer constant representing the largest
value the <code>rand</code> function can return.  In the GNU library, it is
<code>2147483647</code>, which is the largest signed integer representable in
32 bits.  In other libraries, it may be as low as <code>32767</code>. 
</p></blockquote></div>

<!-- stdlib.h -->
<!-- ISO -->
<div class="defun">
&mdash; Function: int <b>rand</b> (<var>void</var>)<var><a name="index-rand-2287"></a></var><br>
<blockquote><p>The <code>rand</code> function returns the next pseudo-random number in the
series.  The value ranges from <code>0</code> to <code>RAND_MAX</code>. 
</p></blockquote></div>

<!-- stdlib.h -->
<!-- ISO -->
<div class="defun">
&mdash; Function: void <b>srand</b> (<var>unsigned int seed</var>)<var><a name="index-srand-2288"></a></var><br>
<blockquote><p>This function establishes <var>seed</var> as the seed for a new series of
pseudo-random numbers.  If you call <code>rand</code> before a seed has been
established with <code>srand</code>, it uses the value <code>1</code> as a default
seed.

        <p>To produce a different pseudo-random series each time your program is
run, do <code>srand (time (0))</code>. 
</p></blockquote></div>

   <p>POSIX.1 extended the C standard functions to support reproducible random
numbers in multi-threaded programs.  However, the extension is badly
designed and unsuitable for serious work.

<!-- stdlib.h -->
<!-- POSIX.1 -->
<div class="defun">
&mdash; Function: int <b>rand_r</b> (<var>unsigned int *seed</var>)<var><a name="index-rand_005fr-2289"></a></var><br>
<blockquote><p>This function returns a random number in the range 0 to <code>RAND_MAX</code>
just as <code>rand</code> does.  However, all its state is stored in the
<var>seed</var> argument.  This means the RNG's state can only have as many
bits as the type <code>unsigned int</code> has.  This is far too few to
provide a good RNG.

        <p>If your program requires a reentrant RNG, we recommend you use the
reentrant GNU extensions to the SVID random number generator.  The
POSIX.1 interface should only be used when the GNU extensions are not
available. 
</p></blockquote></div>

   </body></html>

