Difference between revisions of "ubuntu kernelversion number/de"

From Lazarus wiki
Jump to navigationJump to search
m (nicer syntax highlighting)
m (more highlighting)
Line 57: Line 57:
  
 
Das ganze läßt sich strukturierter mit {{Doc|package=RTL|unit=baseunix=identifier=fpuname|text=<syntaxhighlight lang="pascal" enclose="none">FPUname</syntaxhighlight>}} ermitteln:
 
Das ganze läßt sich strukturierter mit {{Doc|package=RTL|unit=baseunix=identifier=fpuname|text=<syntaxhighlight lang="pascal" enclose="none">FPUname</syntaxhighlight>}} ermitteln:
<syntaxhighlight lang="pascal" line start="0" highlight="4-5,17,21,27-28">
+
<syntaxhighlight lang="pascal" line start="0" highlight="3-5,16-17,21,27-28">
 
program kerninfo(input, output, stderr);
 
program kerninfo(input, output, stderr);
  

Revision as of 17:57, 11 February 2018

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.