+ Returns 1 if path is absolute, 0 if relative
+*/
+YAZ_EXPORT int yaz_is_abspath (const char *path);
+
+/** \brief resolve file on path
+ \param fname "short" filename (without path)
+ \param path the path (dir1:dir2,..) - ala Unix
+ \param base can be added to relative paths (NULL for no append)
+ \param fullpath the full path to filename (if succesful)
+
+ Returns 0/NULL if no fname could be found in path;
+ pointer to fullpath if fname could be found.
+ We assume fullpath is 1024 bytes in length!
+*/
+YAZ_EXPORT char *yaz_filepath_resolve(const char *fname, const char *path,
+ const char *base, char *fullpath);
+
+
+/** \brief opens first file in path in path
+ \param fname "short" filename (without path)
+ \param mode mode as in fopen(3)
+ \param path the path (dir1:dir2,..) - ala Unix
+ \param base can be added to relative paths (NULL for no append)
+
+ Returns 0/NULL if no fname could be found in path;
+ FILE pointer if fname could be found.
+*/
+YAZ_EXPORT FILE *yaz_fopen(const char *path, const char *fname,
+ const char *mode, const char *base);
+
+/** \brief opens first file in path in path
+ \param fname "short" filename (without path)
+ \param mode mode as in fopen(3)
+ \param path the path (dir1:dir2,..) - ala Unix
+
+ Returns 0/NULL if no fname could be found in path;
+ FILE pointer if fname could be found.
+*/
+YAZ_EXPORT FILE *yaz_path_fopen(const char *path, const char *fname,
+ const char *mode);
+
+/** \brief closes file
+ \param f FILE handle
+
+ Returns -1 on failure; 0 on success
+*/
+YAZ_EXPORT int yaz_fclose(FILE *f);
+
+
+YAZ_END_CDECL