ubuntu kernelversion number/de

From Lazarus wiki
Revision as of 17:57, 11 February 2018 by Kai Burghardt (talk | contribs) (more highlighting)
Jump to navigationJump to search

Deutsch (de)

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:

 0program kerninfo(input, output, stderr);
 1
 2uses
 3	// baseUnix for fpUname
 4	baseunix,
 5	// sysutils for format
 6	sysutils,
 7	// gettext for internationalization
 8	gettext;
 9
10resourcestring
11	unameFailure  = 'uname(2) failed';
12	releaseNumber = 'release number: %0:s';
13	versionNumber = 'version number: %0:s';
14
15var
16	kernelInfo: utsName;
17begin
18	translateResourceStrings('./' + applicationName() + '.%s.mo');
19	
20	if fpUname(kernelInfo) <> 0 then
21	begin
22		writeLn(stderr, unameFailure);
23		halt(1);
24	end;
25	
26	writeLn(format(releaseNumber, [kernelInfo.release]));
27	writeLn(format(versionNumber, [kernelInfo.version]));
28end.