On Tuesday 12 October 2004 22:21, Bernhard Walle wrote:
* Ferdinand Ihringer
[2004-10-12 22:08]: Ich habe ein Problem mit Zufallszahlen bzw. ein Problem mit dem Ausgangswert für Pseudozufallszahlen mit srand(). Das Programm sollte plattformunabhängig sein und ich würde mich gerne auf die zum ANSI-Standard gehörenden Funktionen beschränken, aber für statistische Zwecke rufe ich es z.B. 10000 mal hintereinander auf. Als einzigen plattformunabhängigen Wert, der da in Frage kommt, kenne ich da time(0). Die 10000 Programmaufrufe erstrecken sich aber nun leider über ein bisschen mehr als 60 Sekunden. Da hätte ich das Programm auch nur 60 mal aufrufen können.
PID auslesen (getpid() unter POSIX) geht auch nicht? Ansonsten kann man auch uninitialisierte Variablen vom Stack auslesen, geht natürlich aus jeder Plattform. ftime() wäre auch POSIX, aber eben nicht ANSI C.
Nein, POSIX geht eigentlich nicht, außer es gibt getpid() auch für Windows, das nun nicht POSIX-konform ist. Etwas PID-artiges müsste es da ja auch geben. Es würde dort auch mit dem gcc kompiliert werden. Vielleicht helfen ja dessen Erweiterungen, die ich nur sporadisch kenne, da. Auf irgendwelche Abfragen des Betriebssystems will ich eigentlich verzichten. Zu den uninitialisierten Variablen: Also wenn ich uninitialisierte Variablen bei mir abfrage, kommt zumindest kurz hintereinander per Hand immer der selbe Wert, genauso wie der Speicherplatz der selbe ist. Oder habe ich da etwas missverstanden? Ferdinand