- Код: Выделить всё
B7F52264-3BE7-0805-7422-F5B77023F5B7
00000000-FEE8-B74B-BCB9-0608E8FE4BB7
00000000-FFE8-B752-BCB9-0608E8FF52B7
00000000-5DE8-B753-BCB9-0608E85D53B7
00000000-26E8-B74E-BCB9-0608E8264EB7
...
То есть первая генерация нормальная, а потом начинают создаваться какие-то странные последовательности, которые иногда повторяются.
Конкретно под линуксом работает следующая функция:
- Код: Выделить всё
Const
KernelUUID = '/proc/sys/kernel/random/uuid';
Function CreateKernelGUID(Var GUID : TGUID) : Boolean;
Const
UUIDLen = 36;
Var
fd: Longint;
S : String;
begin
fd:=FileOpen(KernelUUID,fmOpenRead);
Result:=(Fd>=0);
if Result then
begin
SetLength(S,UUIDLen);
SetLength(S,FileRead(fd,S[1],UUIDLen));
Result:=(Length(S)=UUIDLen);
If Result then
begin
GUID:=StringToGUID('{'+S+'}');
//Writeln('Kernel ID = ',GuidToString(GUID));
end;
end;
end;
При тщательном ея рассмотрении видно, что GUID получается из некоего фиктивного файла, но, что смущает, файл этот открывается, но потом не закрывается. Прежде чем позориться в багтрекере, подскажите: это нормальное положение вещей или как?