HPlogo Accessing Files Programmer's Guide > Chapter 5 Opening a File

Opening a System-Defined File

MPE documents

Complete PDF
Table of Contents
Index

E0300 Edition 6 ♥
E0692 Edition 5

System-defined file designators indicate those files that the file system uniquely identifies as standard input/output devices for jobs and sessions. System-defined files are $STDIN, $STDINX, $STDLIST, $NEWPASS, $OLDPASS, and $NULL. You cannot redefine characteristics for these files once the process executing your code has been created, nor can you backreference a file equation to redefine the characteristics for a system-defined file designator. For more information about system-defined files, refer to Chapter 3, "Specifying a File Designator".

The following examples show two different ways that you can open system-defined files using the indicated HPFOPEN options:
  • "Opening $STDIN" shows an example of an HPFOPEN call that uses the designator option to open the job or session standard input device (see Example 5-3).

  • "Opening $STDLIST" shows an example of an HPFOPEN call that uses the formaldesignator option to open the job or session standard list device (see example 5-4).

Opening $STDIN


Example 5-3 is an HP Pascal/iX code segment containing an HPFOPEN intrinsic call that uses only the designator option to open the system-defined file $STDIN. $STDIN is the file designator associated with your job or session's standard input device. For an interactive session, $STDIN is always a terminal keyboard. For a batch job, $STDIN may be a disk file or other input device. You can also open a system-defined file using only the HPFOPEN formaldesignator option (illustrated in Example 5-4).$STDIN, opening:files|

Example 5-3. Opening $STDLIST Using HPFOPEN designator option

  procedure open_standard_input_device

  const
     designator_option    = 5;     {defines HPFOPEN itemnum 5}

  var
     inputfile_num  : integer;  {required HPFOPEN filenum parameter}
     status         : integer;{returns info if error/warning occurs}

     designator     : integer;  {declares HPFOPEN item 5           }

  begin
     inputfile_num  := 0;
     status         := 0;
     designator     := 4;       {Specifies $STDIN                  }

     HPFOPEN  (inputfile_num, status,
               designator_option, designator,  {designator option}
               );

     if status <>0 then handle_file_error (inputfile_num, status);
  end;

If the HPFOPEN call is successful, a positive integer value is returned in inputfile_num, and status returns a value of zero. The file is now open and can be read from. If an error or warning condition is encountered by HPFOPEN, status returns a nonzero value, thus invoking the error-handling procedure handle_file_error. For more information about HPFOPEN parameters, refer to the MPE/iX Intrinsics Reference Manual.

Opening $STDLIST


Example 5-4 is an HP Pascal/iX code segment containing an HPFOPEN intrinsic call that uses the formaldesignator option to open the system-defined file $STDLIST.

$STDLIST is the file designator associated with your job or session's standard list device. For an interactive session, $STDLIST is nearly always a terminal screen. For a batch job, $STDLIST is usually a line printer. You can also open $STDLIST using the HPFOPEN designator option (illustrated in Example 5-3).

Example 5-4. Opening $STDLIST Using HPFOPEN formaldesignator option

  procedure open_standard_list_device

  const
     formal_designator_option   = 2;     {defines HPFOPEN itemnum 2}

  type
     pac80  = packed array [1..80] of char;

  var
     listfile_num   : integer;  {required HPFOPEN filenum parameter}
     status         : integer; {returns info if error/warning occurs}

     file_name      : pac80;    {declares HPFOPEN item 2           }

  begin
     listfile_num   := 0;
     status         := 0;
     file_name      := '$stdlist'; {Specifies system-defined file  }
                                   {Blank is used as delimiter     }

     HPFOPEN  (listfile_num, status,
               formal_designator_option, file_name,
                                           {formaldesignator option}
               );

     if status <>0 then handle_file_error (listfile_num, status);
  end;

If the HPFOPEN call is successful, a positive integer value is returned in listfile_num, and status returns a value of zero. The standard list device is now open and can be written to. If an error or warning condition is encountered by HPFOPEN, status returns a nonzero value, thus invoking the error-handling procedure handle_file_error.

In appendix A, "HP Pascal/iX Program examples," example A-1 uses a similar procedure to open $STDLIST. For more information about HPFOPEN parameters, refer to the MPE/iX Intrinsics Reference Manual.




Opening a Disk File


Opening a Device File