首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Lazarus和FreePascal获取Linux系统信息

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

Stack Overflow用户
提问于 2011-11-13 00:35:25
回答 2查看 2.3K关注 0票数 7

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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-11-14 18:15:03

在Linux上没有这样的统一点,你可以为它写一个头,然后继续使用它。此外,由于Linux的许多部分都是独立版本的,所以没有单一版本这回事。

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

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

但没有像WMI这样的功能总是有效的,而且是非常不变的。Linux过去是,现在仍然是一个黑客,操作系统被分割成独立的发行版,几乎没有硬安全性。DBUS和HAL正朝着这个方向发展,但versionitis和向新库的过渡使这条路线变得不那么普遍。

票数 4
EN

Stack Overflow用户

发布于 2012-02-03 16:01:04

  1. 有一个"Unix“单元,你可以检查里面是否有你想要的东西。

我希望能够获得操作系统版本信息

这到底是什么意思?您可以根据需要使用"uname -a“(从TProcess调用)的输出。也有/etc/redhat-release等文件,但它们可能因分发而不同。

Windows和Linux上的

和用户帐户类型。

在Unix中,您可能希望看到用户所在的组。(有多种方法可以做到这一点)。

我看到有一个Windows system API,但是找不到任何类似的东西。

Linux倾向于遵循“一切都是文件”的方法,所以在某个地方通常会有一个文件(或伪文件),您可以用所需的信息来读取这些文件。一般来说,Unix比Windows更灵活。例如,在Windows中,可能有一个API调用来获取处理器数量或速度(以Mhz为单位)。在Linux中,您可以查看/dev/cpuinfo并将该信息解析为文本文件。

Unix有各种各样的版本,甚至在Linux中也有各种各样的发行版。当然,您可以通过暂时仅支持某些发行版来缩小您想要做的事情的范围。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8105828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档