Difference between revisions of "ubuntu kernelversion number/de"

From Free Pascal wiki
Jump to navigationJump to search
m
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 
{{ubuntu kernelversion number}}
 
{{ubuntu kernelversion number}}
<br>
+
 
<br>
+
Zurück zur Seite [[code examples/de|Code Beispiele]].
Dieser Artikel beschäftigt sich mit der Linuxprogrammierung (Ubuntu).<br>
+
 
Die Prozedur ermittelt die aktuelle Versionsnummer des Kernels.<br>
+
Dieser Artikel beschäftigt sich mit der Linuxprogrammierung (Ubuntu).
<br>
+
 
<syntaxhighlight>
+
Die Prozedur ermittelt die aktuelle Versionsnummer des Kernels.
 +
<syntaxhighlight lang="pascal">
 
uses
 
uses
 
   SysUtils, ...;
 
   SysUtils, ...;
Line 15: Line 16:
 
   txtDatei: Textfile;
 
   txtDatei: Textfile;
 
begin
 
begin
   Assignfile(txtDatei, '/proc/version'); //Weist txtDatei die Datei zu
+
   Assignfile(txtDatei, '/proc/version'); // weist txtDatei die Datei zu
   reset(txtDatei); //Öffnet die Datei zum lesen
+
   reset(txtDatei); // oeffnet die Datei zum Lesen
   readln(txtDatei, Result); //liest die erste Zeile
+
   readln(txtDatei, Result); // liest die erste Zeile
   Closefile(txtDatei); //Schließt die Datei
+
   Closefile(txtDatei); // schliesst die Datei
 
end;
 
end;
  
Line 32: Line 33:
 
   Result := '';
 
   Result := '';
  
   strProcVersion := funLeseDatei;
+
   strProcVersion := funLeseDatei();
 
   if strProcVersion = '' then
 
   if strProcVersion = '' then
 
     exit;
 
     exit;
Line 52: Line 53:
 
end;
 
end;
 
    
 
    
  ...
+
...
 
+
</syntaxhighlight>
 +
 
 +
Das ganze läßt sich strukturierter mit {{Doc|package=RTL|unit=baseunix=identifier=fpuname|text=<syntaxhighlight lang="pascal" inline>FPUname</syntaxhighlight>}} ermitteln:
 +
<syntaxhighlight lang="pascal" line highlight="3-5,16-17,21,27-28">
 +
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>
 
</syntaxhighlight>
<br>
+
 
<br>
+
{{AutoCategory}}
--[[User:Olaf|Olaf]] 06:14, 29 May 2013 (UTC)
+
[[Category:Code Snippets/de]]
[[Category:Code Parts/de]]{{AutoCategory}}
 

Latest revision as of 17:16, 6 August 2022

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:

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