Go to the first, previous, next, last section, table of contents.
Static Semantics
-
The procedures and functions described in this subclause provide for the
control of external files; their declarations are repeated in each of
the packages for sequential, direct, text, and stream input-output. For
text input-output, the procedures Create, Open, and Reset have
additional effects described in subclause See section A.10.2 Text File Management.
-
procedure Create(File : in out File_Type;
Mode : in File_Mode := default_mode;
Name : in String := "";
Form : in String := "");
-
Establishes a new external file, with the given name and form, and
associates this external file with the given file. The given file is
left open. The current mode of the given file is set to the given access
mode. The default access mode is the mode Out_File for sequential and
text input-output; it is the mode Inout_File for direct input-output. or
direct access, the size of the created file is implementation defined.
-
A null string for Name specifies an external file that is not accessible
after the completion of the main program (a temporary file). A null
string for Form specifies the use of the default options of the
implementation for the external file.
-
The exception Status_Error is propagated if the given file is already
open. The exception Name_Error is propagated if the string given as Name
does not allow the identification of an external file. The exception
Use_Error is propagated if, for the specified mode, the external
environment does not support creation of an external file with the given
name (in the absence of Name_Error) and form.
-
procedure Open(File : in out File_Type;
Mode : in File_Mode;
Name : in String;
Form : in String := "");
-
Associates the given file with an existing external file having the
given name and form, and sets the current mode of the given file to the
given mode. The given file is left open.
-
The exception Status_Error is propagated if the given file is already
open. The exception Name_Error is propagated if the string given as Name
does not allow the identification of an external file; in particular,
this exception is propagated if no external file with the given name
exists. The exception Use_Error is propagated if, for the specified
mode, the external environment does not support opening for an external
file with the given name (in the absence of Name_Error) and form.
-
procedure Close(File : in out File_Type);
-
Severs the association between the given file and its associated
external file. The given file is left closed. In addition, for
sequential files, if the file being closed has mode Out_File or
Append_File, then the last element written since the most recent open or
reset is the last element that can be read from the file. If no elements
have been written and the file mode is Out_File, then the closed file is
empty. If no elements have been written and the file mode is
Append_File, then the closed file is unchanged.
-
The exception Status_Error is propagated if the given file is not open.
-
procedure Delete(File : in out File_Type);
-
Deletes the external file associated with the given file. The given file
is closed, and the external file ceases to exist.
-
The exception Status_Error is propagated if the given file is not open.
The exception Use_Error is propagated if deletion of the external file
is not supported by the external environment.
-
procedure Reset(File : in out File_Type; Mode : in File_Mode);
procedure Reset(File : in out File_Type);
-
Resets the given file so that reading from its elements can be restarted
from the beginning of the file (for modes In_File and Inout_File), and
so that writing to its elements can be restarted at the beginning of the
file (for modes Out_File and Inout_File) or after the last element of
the file (for mode Append_File). In particular, for direct access this
means that the current index is set to one. If a Mode parameter is
supplied, the current mode of the given file is set to the given mode.
In addition, for sequential files, if the given file has mode Out_File
or Append_File when Reset is called, the last element written since the
most recent open or reset is the last element that can be read from the
file. If no elements have been written and the file mode is Out_File,
the reset file is empty. If no elements have been written and the file
mode is Append_File, then the reset file is unchanged.
-
The exception Status_Error is propagated if the file is not open. The
exception Use_Error is propagated if the external environment does not
support resetting for the external file and, also, if the external
environment does not support resetting to the specified mode for the
external file.
-
function Mode(File : in File_Type) return File_Mode;
-
Returns the current mode of the given file.
-
The exception Status_Error is propagated if the file is not open.
-
function Name(File : in File_Type) return String;
-
Returns a string which uniquely identifies the external file currently
associated with the given file (and may thus be used in an Open
operation). If an external environment allows alternative specifications
of the name (for example, abbreviations), the string returned by the
function should correspond to a full specification of the name.
-
The exception Status_Error is propagated if the given file is not open.
The exception Use_Error is propagated if the associated external file is
a temporary file that cannot be opened by any name.
-
function Form(File : in File_Type) return String;
-
Returns the form string for the external file currently associated with
the given file. If an external environment allows alternative
specifications of the form (for example, abbreviations using default
options), the string returned by the function should correspond to a
full specification (that is, it should indicate explicitly all options
selected, including default options).
-
The exception Status_Error is propagated if the given file is not open.
-
function Is_Open(File : in File_Type) return Boolean;
-
Returns True if the file is open (that is, if it is associated with an
external file), otherwise returns False.
Implementation Permissions
-
An implementation may propagate Name_Error or Use_Error if an attempt is
made to use an I/O feature that cannot be supported by the
implementation due to limitations in the external environment. Any such
restriction should be documented.
Go to the first, previous, next, last section, table of contents.