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 Université 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 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).
BUG REPORT¶
This tool is under development at the
ASIM department of the
LIP6
laboratory.
We need your feedback to improve documentation and tools.