Hallo,
ik fork in een C programma ergens, en wil vervolgens dat de beide threads een ander random getal genereren. Dat lukt echter niet goed omdat de seed (time()) die ik gebruik vaak hetzelfde is bij beide threads. Weet iemand een manier waarmee het wel werkt?
Het zou erg lastig zijn om het programma te refactoren zodat de functie een argument meekrijgt, anders had ik gewoon in het hoofd-process twee numbers gegenereerd en a.d.v. de return van fork() gekozen.
Voorbeeld:
ik fork in een C programma ergens, en wil vervolgens dat de beide threads een ander random getal genereren. Dat lukt echter niet goed omdat de seed (time()) die ik gebruik vaak hetzelfde is bij beide threads. Weet iemand een manier waarmee het wel werkt?
Het zou erg lastig zijn om het programma te refactoren zodat de functie een argument meekrijgt, anders had ik gewoon in het hoofd-process twee numbers gegenereerd en a.d.v. de return van fork() gekozen.
Voorbeeld:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| #include <unistd.h> #include <time.h> #include <stdlib.h> #include <stdio.h> int p4( void ){ srand(time(NULL)); prinft("%d\n", rand()%8); } int main( void ){ fork(); p4(); return 0; } |
[ Voor 16% gewijzigd door dtech op 25-05-2010 12:06 ]