ubuntu kernelversion number/de
From Lazarus wiki
Jump to navigationJump to search
Zurück zur Seite Code Beispiele.
Dieser Artikel beschäftigt sich mit der Linuxprogrammierung (Ubuntu).
Die Prozedur ermittelt die aktuelle Versionsnummer des Kernels.
uses
SysUtils, ...;
...
function funLeseDatei: string;
var
txtDatei: Textfile;
begin
Assignfile(txtDatei, '/proc/version'); // weist txtDatei die Datei zu
reset(txtDatei); // oeffnet die Datei zum Lesen
readln(txtDatei, Result); // liest die erste Zeile
Closefile(txtDatei); // schliesst die Datei
end;
function funKernelversionsNummer: string;
var
intI: integer = 0;
intZaehler: integer = 0;
strProcVersion: string = '';
begin
Result := '';
strProcVersion := funLeseDatei();
if strProcVersion = '' then
exit;
for intI := 1 to Length(strProcVersion) do
begin
if (strProcVersion[intI] = '-') then
begin
intZaehler := intZaehler + 1;
if intZaehler > 1 then break;
end;
if (strProcVersion[intI] in ['0'..'9', '.', '-']) then
Result := Result + strProcVersion[intI];
end;
end;
...
Das ganze läßt sich strukturierter mit FPUname
ermitteln:
program kerninfo(input, output, stderr);
uses
// baseUnix for fpUname
baseunix,
// sysutils for format
sysutils,
// gettext for internationalization
gettext;
resourcestring
unameFailure = 'uname(2) failed';
releaseNumber = 'release number: %0:s';
versionNumber = 'version number: %0:s';
var
kernelInfo: utsName;
begin
translateResourceStrings('./' + applicationName() + '.%s.mo');
if fpUname(kernelInfo) <> 0 then
begin
writeLn(stderr, unameFailure);
halt(1);
end;
writeLn(format(releaseNumber, [kernelInfo.release]));
writeLn(format(versionNumber, [kernelInfo.version]));
end.