Sign in Join
Wiki copytemporary

Revision 1 of 1, by Kai Burghardt on 8-6-2022. The page as it is now.

ubuntu kernelversion number/de

Zurück zur Seite Code Beispiele.

Dieser Artikel beschäftigt sich mit der Linuxprogrammierung (Ubuntu).

Die Prozedur ermittelt die aktuelle Versionsnummer des Kernels.

pascal
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:

pascal
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.

From the Free Pascal wiki, page "ubuntu kernelversion number/de", as it stood on 2022-08-06 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.