sysutils

From Lazarus wiki
Revision as of 18:48, 6 February 2021 by Kai Burghardt (talk | contribs) (→‎Caveats: give program code better title, allegedly insert new external links [spam detection false positive])
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search

English (en) Esperanto (eo) français (fr)

The unit sysUtils shipped with the FPC’s default run-time library provides many system utilities. It attempts to be as compatible to Delphi’s sysUtils unit as possible. However, the FPC version is available on all platforms that the FPC supports. It does not contain any Windows-related routines or other highly platform-specific functionality.

Notable functionality

Caveats

If the sysUtils unit is included, all run-time errors become exceptions, which virtually forces you to use a compiler mode (or mode switch) that allows exception treatment. To catch an exception by its name you will need to include sysUtils, even though the module itself does not use any of the included system utilities.

Changing run-time errors to exceptions has a global effect. The following program will terminate with an uncaught exception, even though it does not list sysUtils in its uses-clause: The sysUtils unit is implicitly included via the strUtils unit:

program implicitSysUtilsCaveat(input, output, stdErr);
uses
	strUtils;
var
	x: file of char;
	c: char;
begin
	// deliberately cause an error for demonstration purposes
	read(x, c); 
end.

Also, if size matters, using sysUtils is by design not the smartest choice.

See also