MBKFOPEN(3) MBK UTILITY FUNCTIONS MBKFOPEN(3)
NAME
mbkfopen - open a file with several search pathes
ORIGIN
This software belongs to the ALLIANCE CAD SYSTEM developed by the ASIM team at LIP6 laboratory of Universite Pierre et Marie CURIE, in
Paris, France.
Web : http://asim.lip6.fr/recherche/alliance/
E-mail : alliance-users@asim.lip6.fr
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 direc-
tory 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
");
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).
BUG REPORT
This tool is under development at the ASIM department of the LIP6 laboratory.
We need your feedback to improve documentation and tools.
ASIM
/LIP6 October 1, 1997 MBKFOPEN(3)