Sign in Join
Wiki copytemporary

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.

Revision 1, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.