Spero sia la sezione giusta.
Per esercizio, ho scritto un programmino in C che restituisce un numero pseudo-casuale da usare in uno shell script, il quale fa la somma di tre numeri casuali.
Questo é il codice C:
// Genera un numero casuale compreso tra 0 e (argomento a linea di comando - 1)
// ad. es il comando "./random 6" restituisce un intero tra 0 e 5
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(int argc, char *argv[])
{
//seed per funzione random
srand((unsigned) time(NULL));
//atoi ASCII to integers
int limit = atoi(argv[1]);
//genera intero pseudo-casuale
int random = rand() % limit;
printf("%d", random);
return 0;
}
Questo é lo script shell:
#
var1=`./random 256`
var2=`./random 256`
var3=`./random 256`
#
echo $var1.$var2.$var3
echo
#
var4=$[ $var1+$var2+$var3 ]
echo $var4
#
exit 0
Il problema é che in ogni esecuzione dello script viene fuori sempre lo stesso numero casuale.
a@olidata:~/Documenti/C$ ./script.sh
83.83.83
249
a@olidata:~/Documenti/C$ ./script.sh
227.227.227
681
a@olidata:~/Documenti/C$ ./script.sh
145.145.145
435
Come mai? Dove é l'errore?