ubuntu kernelversion number/de
From Free Pascal wiki
Jump to navigationJump to searchThe printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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:
1program kerninfo(input, output, stderr);
2
3uses
4 // baseUnix for fpUname
5 baseunix,
6 // sysutils for format
7 sysutils,
8 // gettext for internationalization
9 gettext;
10
11resourcestring
12 unameFailure = 'uname(2) failed';
13 releaseNumber = 'release number: %0:s';
14 versionNumber = 'version number: %0:s';
15
16var
17 kernelInfo: utsName;
18begin
19 translateResourceStrings('./' + applicationName() + '.%s.mo');
20
21 if fpUname(kernelInfo) <> 0 then
22 begin
23 writeLn(stderr, unameFailure);
24 halt(1);
25 end;
26
27 writeLn(format(releaseNumber, [kernelInfo.release]));
28 writeLn(format(versionNumber, [kernelInfo.version]));
29end.