Seite 1 von 1

GUIDstring erzeugen

Verfasst: 02.03.2009 16:02
von ts-soft
Ich bräuchte eine Möglichkeit unter Linux einen einmaligen GUIDstring zu
erzeugen, gibts da eine API?

Verfasst: 02.03.2009 17:20
von freak
Muss die GUID zu irgendwas kompatibel sein (z.B. Microsoft COM) ? Dann musst du nach einer lib suchen die deren genauen Algorithmus implementiert.

Wenn nicht dann würde ich libuuid empfehlen. Das Packet das diese lib beinhaltet heist "e2fsprogs" und sollte auf den meisten Systemen vorhanden sein weil das Utilities für das ext2 Dateisystem sind.

Code: Alles auswählen

Structure uuid_t
  char.b[16]
EndStructure

;/* UUID Variant definitions */
#UUID_VARIANT_NCS 	    = 0
#UUID_VARIANT_DCE 	    = 1
#UUID_VARIANT_MICROSOFT	= 2
#UUID_VARIANT_OTHER 	  = 3

;/* UUID Type definitions */
#UUID_TYPE_DCE_TIME   = 1
#UUID_TYPE_DCE_RANDOM = 4

ImportC "-luuid"
  uuid_clear(*uu.uuid_t)
  uuid_compare.l(*uu1.uuid_t, *uu2.uuid_t)
  uuid_copy(*dst.uuid_t, *src.uuid_t)
  uuid_generate(*out.uuid_t)
  uuid_generate_random(*out.uuid_t)
  uuid_generate_time(*out.uuid_t)
  uuid_is_null.l(*uu.uuid_t)
  uuid_parse(*in, *uu.uuid_t)
  uuid_unparse(*uu.uuid_t, *out)
  uuid_unparse_lower(*uu.uuid_t, *out)
  uuid_unparse_upper(*uu.uuid_t, *out)
  uuid_time(*uu.uuid_t, *ret_tv)
  uuid_type.l(*uu.uuid_t)
  uuid_variant.l(*uu.uuid_t)
EndImport

; ---------------------------------------------

UUID$ = Space(36)
uuid_generate(@uuid.uuid_t)
uuid_unparse_upper(@uuid, @UUID$)
Debug UUID$
manpage: (unter "See Also" sind die einzelnen Befehle zu finden)
http://linux.die.net/man/3/libuuid

Verfasst: 02.03.2009 17:48
von ts-soft
:allright:
genau das hab ich gesucht :D

Verfasst: 02.03.2009 18:15
von ts-soft
leider findet er die lib nicht :(
PureBasic - Linker error hat geschrieben:/usr/bin/ld: cannot find -luuid
collect2: ld gab 1 als Ende-Status zurÄŒck
(Ubuntu 8.10 x86)
e2fsprogs ist installiert

Verfasst: 02.03.2009 18:53
von freak
Hmm, scheint so als wäre die lib doch nicht in dem Packet wie die Manpage behauptet.

Für Ubuntu ist die lib im Packet "uuid-dev".

Verfasst: 02.03.2009 19:17
von ts-soft
:allright: funktioniert so wie ich es erhofft habe!