36 lines
1017 B
C
36 lines
1017 B
C
|
#include <stdio.h>
|
||
|
#include <stdlib.h>
|
||
|
|
||
|
int main(void) {
|
||
|
int resultat_lancer;
|
||
|
unsigned char valeur_aleatoire;
|
||
|
size_t octet_lu;
|
||
|
/* On ouvre le fichier /dev/random */
|
||
|
FILE* fichier_random = fopen("/dev/random", "r");
|
||
|
|
||
|
/* On vérifie qu'il s'ouvre bien*/
|
||
|
if (fichier_random == NULL) {
|
||
|
fputs("Erreur lors de l'ouverture de /dev/random", stderr);
|
||
|
return EXIT_FAILURE;
|
||
|
}
|
||
|
|
||
|
/* On lit un octet depuis /dev/random */
|
||
|
octet_lu = fread(&valeur_aleatoire, sizeof(valeur_aleatoire), 1, fichier_random);
|
||
|
/*On vérifie l'octet lu */
|
||
|
if (octet_lu != 1) {
|
||
|
fputs("Erreur lors de la lecture depuis /dev/random", stderr);
|
||
|
fclose(fichier_random);
|
||
|
return EXIT_FAILURE;
|
||
|
}
|
||
|
|
||
|
/* On ferme le fichier /dev/random */
|
||
|
fclose(fichier_random);
|
||
|
|
||
|
/* On calcule le résultat du dé (entre 1 et 6) */
|
||
|
resultat_lancer = (valeur_aleatoire % 6) + 1;
|
||
|
|
||
|
/* On affiche le résultat */
|
||
|
printf("%d\n", resultat_lancer);
|
||
|
|
||
|
return EXIT_SUCCESS;
|
||
|
}
|