Was ist die C-Bibliotheksfunktion zum Erzeugen einer zufälligen Zeichenfolge?

8

Gibt es eine Bibliotheksfunktion, die auf die gleiche Weise eine zufällige Zeichenfolge erstellt, wie mkstemp() einen eindeutigen Dateinamen erstellt? Was ist das?

    
cody 02.04.2013, 15:11
quelle

2 Antworten

8

Es gibt keine Standardfunktion, aber Ihr Betriebssystem implementiert möglicherweise etwas. Haben Sie überlegt, die Handbücher zu durchsuchen? Alternativ ist diese Aufgabe einfach genug. Ich wäre versucht, etwas wie:

zu verwenden %Vor%

Das hat den Vorteil, auf EBCDIC-Systemen korrekt zu arbeiten und praktisch jedem Zeichensatz gerecht zu werden. Ich habe keine der folgenden Zeichen in den Zeichensatz eingefügt, da es offensichtlich ist, dass Sie Zeichenfolgen möchten, bei denen es sich um Dateinamen handeln kann:

%Vor%

Ich dachte, viele dieser Zeichen könnten in Dateinamen auf verschiedenen Betriebssystemen ungültig sein.

Haupttestfall:

Wenn Sie dies schreiben, können Sie diesen Code unter hier sehen.

%Vor%

Ich habe diesen Testfall geschrieben, weil es so aussieht, als ob der einzige Grund, warum ich vor kurzem eine negative Stimme für diese Antwort bekommen konnte, mit einem Fehler zusammenhängt, den ich vor langer Zeit behoben habe.

Beachten Sie, dass assert die Position des Nullabschlusszeichens testet. Dieser Code funktioniert. Wie bei allem in C müssen Sie hinsichtlich der Schnittstellen für Funktionen vorsichtig sein; Sie können keine ungültige Eingabe an sie übergeben.

Mein Code funktioniert, und ich habe es ziemlich gut gemacht, ihn selbst zu kritisieren. Bitte begründen Sie sich beim Downvote. Ta!

    
Sebivor 02.04.2013, 15:39
quelle
0

Es gibt keine API-Erstellung, Sie können (auf * x-System) /dev/urandom like:

verwenden %Vor%

Beachten Sie, dass dadurch Binärdaten und keine String-Daten erzeugt werden, so dass Sie sie möglicherweise danach filtern müssen.

Sie können auch den Standard-Pseudozufallsgenerator rand() verwenden:

%Vor%

Wenn Sie wirklich eine zufällige Zeichenfolge benötigen, müssen Sie generating random sequence cryptography das ist eines der kryptographischen Probleme, die immer noch keine perfekte Lösung hat:)

    
Vyktor 02.04.2013 15:20
quelle

Tags und Links