Why does rand () on 64 bit RHEL 5 gives different result?

Solution In Progress - Updated -

Issue

  • rand () in RHEL 6 and RHEL 5 64 bit produces different results.

  • For following code

#include <stdio.h>
#include <stdlib.h>
int main ()
{
  unsigned int nSeed = 2147483648; // or any number bigger than this 
  printf ("Seed: %d\n", nSeed);
  srand (nSeed);
  printf ("Random number: %d\n", rand());

  return 0;
}
  • On RHEL5 and RHEL6 the above gives different results for the random number.
RHEL6 32 and 64 bit: 
Seed: -2147483648
Random number: 1336741213


RHEL5 32 bit: 
Seed: -2147483648
Random number: 1336741213

RHEL5 64 bit:
Seed: -2147483648
Random number: 722473798
  • If the seed is < 2^31, then they produced the same result.

Environment

  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 5

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content