Provided by: alliance_5.1.1-1.1_amd64 bug

NAME

       mbkfopen - open a file with several search pathes

SYNOPSYS

       #include "mut.h"
       FILE ∗mbkfopen(name, extension, mode)
       char ∗name, ∗extension, ∗mode;

PARAMETERS

       name                Name of the file to be opened

       extension           Extension to the file name

       model               File opening mode

DESCRIPTION

       mbkfopen opens a file, searching it through the pathes given in the environment variables MBK_CATA_LIB(1)
       and  MBK_WORK_LIB(1).  Its main issue is to enable simple file access for any program that works with mbk
       path environment variables.
       The file to be opened is called name.extension, if extension is not NULL, else it is name.  If  extension
       is the empty string, "", then the file name will be name. .
       The legal values for mode are

       READ_TEXT           opens for reading

       WRITE_TEXT          discards and opens for writting
                           since disk access should be a straight forward operation knowing mbk's needs.

       The  search  algorithm  depends  on  the value of mode.  If mode is WRITE_TEXT, then the file is open for
       writting  in  MBK_WORK_LIB(1).  If  mode  is  READ_TEXT  then  the  file  is   first   searched   through
       MBK_WORK_LIB(1),  and  if not found, through each directory specified in MBK_CATA_LIB(1), in the order of
       declaration under unix.  No internal hash table is generated,  in  order  to  let  the  user  choose  its
       directory  priority.   As soon as the file is found, it is opened.  There is no check for redundant files
       in the specified pathes, since it is neither illegal nor bad to have many files with the same names.

RETURN VALUE

       mbkfopen returns a pointer to the opened file.  If the file read or write access  are  violated,  or  the
       file not found, a NULL pointer is returned.

ERROR

       "∗∗∗ mbk error ∗∗∗ mbkfopen : unknown file opening mode mode"
              The mode parameter is not one of the two legal values.

EXAMPLE

       #include "mut.h"
       #include "mph.h"
       phfig_list ∗load_vti_ph(name)
       char ∗name;
       {
       FILE ∗file;
          if ((file = mbkfopen(name, "cp", READ_TEXT)) == NULL) {
             (void)fprintf(stderr, "Pfhhh, can't open name.cp\n");
             EXIT();
          }
          ph_parse(file);
       }

SEE ALSO

       mbk(1),   MBK_CATA_LIB(1),   MBK_WORK_LIB(1),  loadlofig(3),  loadphfig(3),  savelofig(3),  savephfig(3),
       fopen(3).

ASIM/LIP6                                        October 1, 1997                                     MBKFOPEN(3)