Comment générer un GUID dans C?

Je veux générer des guid pour les insérer dans une base de données SQLite (c'est à dire pas de soutien de la bd elle-même). Cependant, je voudrais avoir le contrôle sur certaines propriétés:

  1. Orderedness pour générer de l'augmentation des valeurs guid.
  2. Ordinateur de l'indépendance. La db est public et peut/ne peut pas vouloir guid pour permettre à quelqu'un à la trace des données à une machine spécifique.
  3. Suffisamment aléatoire. Les guid sont des clés dans la base de données qui va être fusionné avec beaucoup d'autres dbs et peut-être assez grande, ce qui signifie que semblant un guid à l'instar de nombreux algorithmes n'est pas bon.
  4. Je peux faire face à l'utilisation du système des Api spécifiques, mais s'il vous plaît lien à la fois Windows et Linux et de fonctions, et quelque chose comme SQLite est préféré, où je peux utiliser le code de quelqu'un d'autre a écrit.
  5. Je préfère également le code qui est OK pour une utilisation dans des applications commerciales.

OriginalL'auteur chacham15 | 2011-09-13