使用Lazarus和FreePascal获取Linux系统信息

Sha*_*ade 7 delphi freepascal lazarus

我是Lazarus/FreePascal的新手,我之前没有Delphi经验.我希望能够在WIndows和Linux上获得操作系统版本信息和用户帐户类型.我看到有一个Windows系统API,但找不到类似Linux的东西.

是否有Lazarus/FreePascal的Linux系统API,如果有,我该如何使用它?

Mar*_*ort 4

Linux上没有这样的统一点,你可以写一个头然后继续使用它。此外,由于 Linux 的许多部分都是独立版本的,因此不存在单一版本之类的东西。

也就是说,内核版本可以通过baseunix.fpuname()获取。发行版很难,因为每个发行版都以不同的方式存储版本信息。

第一步是确定您需要的信息,以及从哪里获取它的粗略想法(例如 libc 等系统库、sysctl 和 /proc 等附加信息,以及桌面系统上的更高级别系统是否允许查询此类信息,例如通过DBUS)。这些引用并不总是在 Pascal 中。然后在此处或 Lazarus 论坛/邮件列表上提出具体问题。

但不存在像 WMI 那样始终有效且相当不变的功能。Linux 过去是、现在仍然是一个黑客和调整者的操作系统,被分成几个独立的发行版,几乎没有什么硬性保障。DBUS 和 HAL 正朝这个方向发展,但版本问题和向新库的过渡使得这条路线不太通用。