]> foleosoft.com Git - QAnsel.git/commitdiff
Sun Feb 11 09:59:44 PM EST 2024
authormiha-q <>
Mon, 12 Feb 2024 02:59:44 +0000 (21:59 -0500)
committermiha-q <>
Mon, 12 Feb 2024 02:59:44 +0000 (21:59 -0500)
src/QAnsel.c

index f757aa8df52e0182e16ec81f67300740e7159c74..b8b70a158805c96d904e072a9f5f74b5b523e1f2 100644 (file)
@@ -8,6 +8,7 @@
 #include "chacha20.c"
 #define QUBITS_MAX 11
 uint8_t HIDDEN_VARIABLE = 0;
+FILE* RANDOM_FILE;
 
 typedef struct
 {
@@ -28,16 +29,13 @@ double qansel_rand_h()
 }
 double qansel_rand_t()
 {
-       FILE* f = fopen("/dev/TrueRNG0", "r");
-       if (!f) f = fopen("/dev/random", "r");
-       if (f)
+       if (RANDOM_FILE)
        {
                uint32_t num = 0;
                for (uint8_t i = 0; i < 4; i++)
                {
-                       num = (num << 8) | fgetc(f);
+                       num = (num << 8) | fgetc(RANDOM_FILE);
                }
-               fclose(f);
                return ((double)num) / ((double)UINT32_MAX);
        }
        else
@@ -1319,5 +1317,8 @@ void process(int argc, char** argv)
 
 void main(int argc, char** argv)
 {
+       RANDOM_FILE = fopen("/dev/TrueRNG0", "r");
+       if (!RANDOM_FILE) RANDOM_FILE = fopen("/dev/random", "r");
        process(argc, argv);
+       fclose(RANDOM_FILE);
 }
\ No newline at end of file