Portál AbcLinuxu, 10. května 2025 02:00
Řešení dotazu:
$ python Python 2.5.5 (r255:77872, Feb 2 2010, 00:25:36) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> ord(open("/dev/random").read(1)) 94 >>> ord(open("/dev/random").read(1)) 36 >>> ord(open("/dev/random").read(1)) 194 ...Vzhledem k tomu, že se jedná o poněkud vzácný zdroj, je možné získaným číslem (integerem, takže 4 nebo 8 bajtů) inicializovat libc generátor "náhodných" čísel funkcí
srand()
. V C bych s tím pracoval prostě nějak takto:
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { unsigned int num = 0; FILE *f = fopen("/dev/random", "rb"); if (f == NULL) { perror("fopen"); exit(EXIT_FAILURE); } if (fread(&num, sizeof(num), 1, f) != 1) { fprintf(stderr, "read failed\n"); exit(EXIT_FAILURE); } if (fclose(f) != 0) { perror("fclose"); exit(EXIT_FAILURE); } printf("Random number from /dev/random: %u\n", num); /* inicializace a ukazka pseudo-nahodneho generatoru nahodnych cisel */ srand(num); printf("%d\n", rand()); }
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.