HPlogo Accessing Files Programmer's Guide: HP 3000 MPE/iX Computer Systems > Chapter 5 Opening a File

Opening a System-Defined File

» 

Technical documentation

Complete book in PDF
» Feedback

 » Table of Contents

 » Index

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,  {HPFOPEN 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 (32650-90028).

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 (32650-90028).

Feedback to webmaster