view src/ploki/random.c @ 12508:335a2a849232 draft default tip

<wib_jonas> `` f=/hackenv/bin/dateu; >$f echo $\'#!/bin/bash\\nset -e\\nif (( 1 < $# )); then echo "dateu error: too many command-line arguments. Usage: dateu datetimestring"; exit 2; fi\\nexec date -u ${1:+-d "$1"} "+%Y-%m-%d %H:%M:%S.%3N %z %Z %B %-e %A %G-W%V-%u"\'; chmod a+x "$f"
author HackEso <hackeso@esolangs.org>
date Wed, 03 Jul 2024 18:15:24 +0100
parents ac0403686959
children
line wrap: on
line source

#include "config.h"
#include "random.h"

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void randseed(void) {
	unsigned seed;

	seed = time(NULL);
	#if HAVE_DEV_URANDOM_P
	{
		FILE *fp;

		if ((fp = fopen("/dev/urandom", "rb"))) {
			fread(&seed, sizeof seed, 1, fp);
			fclose(fp);
		}
	}
	#endif
	srand(seed);
}

double randval(void) {
	return rand() / (RAND_MAX + 1.0);
}