Pracuję na wieloprocesowym systemie Linux i muszę generować unikalne identyfikatory. Bezpieczeństwo nie jest brane pod uwagę, więc generator identyfikatorów, który zaczyna od zera i liczy się, byłby w porządku. Poza tym nie ma w tym sieci lokalnej maszyny. Oczywiście nie jest trudno to zaimplementować, ale zastanawiałem się, czy coś już zostało dostarczone (najlepiej lekkie).Jak wygenerować unikalne ID dla całego systemu pod Linuksem
Odpowiedz
To brzmi jak zadanie dla ... ... uuidgen
:
% uuidgen
975DA04B-9A5A-4816-8780-C051E37D1414
Jeśli chcesz zbudować go do własnej aplikacji lub usługi, musisz libuuid
:
#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;
}
Istnieje narzędzie wiersza poleceń o nazwie uuid, które zrobi dokładnie to, co chcesz. Nie jestem pewien, czy domyślnie jest instalowany w różnych dystrybucjach, więc być może będziesz musiał to zrobić sam.
również przydatne ..
cat /etc/machine-id
Plik/etc/maszyna-id zawiera unikalny identyfikator urządzenia w systemie lokalnym, który jest ustawiony w trakcie instalacji. Identyfikator komputera to pojedynczy, zakończony znakiem nowej linii, szesnastkowy, 32-znakowy ciąg znaków ID maszyny. Po dekodowaniu z szesnastkowego odpowiada to 16-bajtowemu/128-bitowemu łańcuchowi znaków.
Sprawdziłem system Debiana, który był pod ręką i ** nie mógł ** znaleźć tego pliku. –
- 1. Kształtowanie ruchu pod Linuksem
- 2. MASM pod Linuksem?
- 3. Jak powinien wyglądać prosty Makefile dla kompilacji Cudy pod Linuksem
- 4. Jak zainicjować bibliotekę współdzieloną pod Linuksem
- 5. przezroczyste proxy dla ruchu IPv6 pod Linuksem
- 6. Unikalne ID dla każdego użytkownika w Androidzie
- 7. uzyskać fizyczny adres bufora pod Linuksem
- 8. Jak uzyskać adres IPv6 interfejsu pod Linuksem
- 9. Jak zaktualizować i wygenerować DocBlock dla całego projektu w PhpStorm?
- 10. Logika lokalizacji instalacji pakietów R pod Linuksem
- 11. Przekierowywanie AT Microcom polecenia pod Linuksem
- 12. howto zbadać plik C++ .o pod Linuksem?
- 13. Podstawowy system czatowy na perlu pod Linuksem
- 14. #pragma komentarz (lib, "xxx.lib") odpowiednik pod Linuksem?
- 15. Gdzie Eclipse szuka pliku eclipse.ini pod Linuksem
- 16. RavenDB: Generowanie Id dla pod-dokumentów
- 17. Jak wygenerować unikatowe pole ID w module w sugarcrm
- 18. fread/ftell pozornie uszkodzony pod Windows, działa dobrze pod Linuksem
- 19. Problem z Androidem Studio działającym pod Linuksem
- 20. Uruchamianie programu skompilowanego pod Linuksem gcc pod Windows
- 21. Jak wygenerować auto-inkrementujące ID w R
- 22. Użyj pliku INI w języku C na komputerze pod Linuksem
- 23. Ukrywanie plików ukrytych pod Linuksem w systemie Windows
- 24. Jak mogę wykryć, kiedy dysk flash jest podłączony pod Linuksem?
- 25. Przechwytywanie całego dźwięku systemu Windows?
- 26. Jak wygenerować cień pod słowami na obrazku
- 27. Jak zdobyć lub wygenerować dane testowe dla systemu rekomendującego?
- 28. Błąd montażowy podczas kompilowania pliku C pod Linuksem
- 29. Emulator BlueStacks dla systemu Linux?
- 30. Przenoszenie aplikacji ASP.NET do Mono/Apache pod Linuksem
Dzięki za odpowiedź. Czy istnieje coś, co można wywołać w ramach procesu, zamiast uruchamiać nowy, aby zwrócić identyfikator? – gimmeamilk
Tak. Zaktualizowałem swoją odpowiedź na przykładzie w C++. – Johnsyweb
dziękuję bardzo – gimmeamilk