Files
vxWorks/libc/stdlib/rand.c
2025-08-20 18:25:46 +08:00

73 lines
1.6 KiB
C

/* rand.c - rand, srand functions for stdlib */
/* Copyright 1992-1993 Wind River Systems, Inc. */
/*
modification history
--------------------
01c,08feb93,jdi documentation cleanup for 5.1.
01b,20sep92,smb documentation additions.
01a,19jul92,smb written and documented.
*/
/*
DESCRIPTION
INCLUDE FILES: stdlib.h
SEE ALSO: American National Standard X3.159-1989
NOMANUAL
*/
#include "vxWorks.h"
#include "stdlib.h"
ulong_t _Randseed = 1;
/*******************************************************************************
*
* rand - generate a pseudo-random integer between 0 and RAND_MAX (ANSI)
*
* This routine generates a pseudo-random integer between 0 and RAND_MAX.
* The seed value for rand() can be reset with srand().
*
* INCLUDE FILES: stdlib.h
*
* RETURNS: A pseudo-random integer.
*
* SEE ALSO: srand()
*/
int rand (void)
{
_Randseed = _Randseed * 1103515245 + 12345;
return (uint_t) (_Randseed/65536) % (RAND_MAX + 1);
}
/*******************************************************************************
*
* srand - reset the value of the seed used to generate random numbers (ANSI)
*
* This routine resets the seed value used by rand(). If srand() is then
* called with the same seed value, the sequence of pseudo-random numbers is
* repeated. If rand() is called before any calls to srand() have been made,
* the same sequence shall be generated as when srand() is first called with
* the seed value of 1.
*
* INCLUDE FILES: stdlib.h
*
* RETURNS: N/A
*
* SEE ALSO: rand()
*/
void * srand
(
uint_t seed /* random number seed */
)
{
_Randseed = seed;
return (void *)0;
}