Difference between revisions of "ubuntu kernelversion number/de"
From Free Pascal wiki
Jump to navigationJump to search (add hint about baseUnix.fpUname()) |
|||
Line 1: | Line 1: | ||
{{ubuntu kernelversion number}} | {{ubuntu kernelversion number}} | ||
− | + | ||
− | Zurück zur Seite [[code examples/de|Code Beispiele]]. | + | Zurück zur Seite [[code examples/de|Code Beispiele]]. |
− | + | ||
− | Dieser Artikel beschäftigt sich mit der Linuxprogrammierung (Ubuntu). | + | Dieser Artikel beschäftigt sich mit der Linuxprogrammierung (Ubuntu). |
− | Die Prozedur ermittelt die aktuelle Versionsnummer des Kernels. | + | |
− | + | Die Prozedur ermittelt die aktuelle Versionsnummer des Kernels. | |
<syntaxhighlight> | <syntaxhighlight> | ||
uses | uses | ||
Line 16: | Line 16: | ||
txtDatei: Textfile; | txtDatei: Textfile; | ||
begin | begin | ||
− | Assignfile(txtDatei, '/proc/version'); // | + | Assignfile(txtDatei, '/proc/version'); // weist txtDatei die Datei zu |
− | reset(txtDatei); // | + | reset(txtDatei); // oeffnet die Datei zum Lesen |
− | readln(txtDatei, Result); //liest die erste Zeile | + | readln(txtDatei, Result); // liest die erste Zeile |
− | Closefile(txtDatei); // | + | Closefile(txtDatei); // schliesst die Datei |
end; | end; | ||
Line 33: | Line 33: | ||
Result := ''; | Result := ''; | ||
− | strProcVersion := funLeseDatei; | + | strProcVersion := funLeseDatei(); |
if strProcVersion = '' then | if strProcVersion = '' then | ||
exit; | exit; | ||
Line 53: | Line 53: | ||
end; | end; | ||
− | + | ... | |
− | |||
</syntaxhighlight> | </syntaxhighlight> | ||
− | |||
− | |||
− | |||
+ | Das ganze läßt sich strukturierter mit {{Doc|package=RTL|unit=baseunix=identifier=fpuname|text=<code>FPUname</code>}} ermitteln: | ||
+ | <syntaxhighlight> | ||
+ | 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. | ||
+ | </syntaxhighlight> | ||
{{AutoCategory}} | {{AutoCategory}} | ||
[[Category:Code Snippets/de]] | [[Category:Code Snippets/de]] |
Revision as of 01:35, 30 January 2018
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.