Linux

2012-03-07 37 views
7

altında sistem genelinde benzersiz kimlikler üretebilir Çok işlemcili bir Linux sistemi üzerinde çalışıyorum ve benzersiz kimlikler oluşturmanız gerekiyor. Güvenlik bir düşünce değildir, bu yüzden sıfırdan başlayan ve geri sayım yapan bir ID jeneratörü iyi olacaktır. Ayrıca sadece yerel bir makinenin içinde, ağ yok. Açıkçası bunu uygulamak zor değil, ama ben zaten sağlanmış bir şey olup olmadığını merak ediyorum (tercihen hafif).Linux

cevap

14

Bu ... için bir iş gibi geliyor ... uuidgen: Kendi uygulama veya hizmet haline oluşturmak istiyorsanız

% uuidgen 
975DA04B-9A5A-4816-8780-C051E37D1414 

, sen libuuid gerekir:

#include <uuid/uuid.h> 
#include <iostream> 

int main() 
{ 
    uuid_t uu; 
    uuid_generate(uu); 
    char uuid[37]; 
    uuid_unparse(uu, uuid); 
    std::cout << uuid << std::endl; 
} 
+0

Cevabınız için teşekkür ederiz. Bir süreç içinde, sadece kimliği döndürmek için yeni bir tane oluşturmaya çalışmak yerine, çağrılabilecek herhangi bir şey var mı? – gimmeamilk

+0

Evet. Cevabımı C++'daki bir örnekle güncelledim. – Johnsyweb

+0

teşekkürler – gimmeamilk

1

Uuid adında, tam olarak istediğiniz şeyi yapacak komut satırı aracı var. Çeşitli dağıtımlarda varsayılan olarak yüklenip yüklenmediğinden emin değilim, bu yüzden bunu kendiniz yapmanız gerekebilir.

0

Ayrıca kullanışlı ..

cat /etc/machine-id 

/etc/makine-id dosya yükleme sırasında ayarlanır yerel sistemin benzersiz makine kimliği vardır. Makine kimliği, tek satırlık sonlandırılmış, onaltılı, 32 karakterli, küçük harfli bir makine kimliği dizgesidir. Onaltılı olarak çözüldüğünde, bu 16 bayt/128 bit dizgeye karşılık gelir.

+0

Elimde bir Debian sistemini kontrol ettim ve ** bu dosyayı bulamıyordum. –