Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

randnum.cpp File Reference

#include <cmath>
#include <ctime>
#include <cstdio>
#include <sys/time.h>
#include "randnum.h"

Include dependency graph for randnum.cpp:

Include dependency graph

Go to the source code of this file.

Functions

unsigned long long random_seed ()
 Generate a random seed from /dev/random if available.


Function Documentation

unsigned long long random_seed  )  [static]
 

Generate a random seed from /dev/random if available.

if no /dev/random, generate the seed from current time in milli-second

Returns:
a random number as candidate for seed

Definition at line 58 of file randnum.cpp.

00059         {
00060                 unsigned int seed;
00061                 struct timeval tv;
00062                 FILE *devrandom;
00063         
00064                 if ((devrandom = fopen("/dev/urandom","r")) == NULL) {
00065                         gettimeofday(&tv,0);
00066                         seed = tv.tv_sec + tv.tv_usec;
00067                         //printf("Got seed %u from gettimeofday()\n",seed);
00068                 } 
00069                 else {
00070                         fread(&seed,sizeof(seed),1,devrandom);
00071                         //printf("Got seed %u from /dev/random\n",seed);
00072                         fclose(devrandom);
00073                 }
00074         
00075                 return seed;
00076         }


Generated on Tue Jun 11 13:41:27 2013 for EMAN2 by  doxygen 1.3.9.1