2005-04-14 18:04:41 +04:00
|
|
|
/*
|
2005-11-05 22:57:48 +03:00
|
|
|
* Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
|
|
|
|
* University Research and Technology
|
|
|
|
* Corporation. All rights reserved.
|
|
|
|
* Copyright (c) 2004-2005 The University of Tennessee and The University
|
|
|
|
* of Tennessee Research Foundation. All rights
|
|
|
|
* reserved.
|
2015-06-24 06:59:57 +03:00
|
|
|
* Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
|
2005-04-14 18:04:41 +04:00
|
|
|
* University of Stuttgart. All rights reserved.
|
|
|
|
* Copyright (c) 2004-2005 The Regents of the University of California.
|
|
|
|
* All rights reserved.
|
|
|
|
* $COPYRIGHT$
|
2015-06-24 06:59:57 +03:00
|
|
|
*
|
2005-04-14 18:04:41 +04:00
|
|
|
* Additional copyrights may follow
|
2015-06-24 06:59:57 +03:00
|
|
|
*
|
2005-04-14 18:04:41 +04:00
|
|
|
* $HEADER$
|
|
|
|
*/
|
|
|
|
|
2015-06-24 06:59:57 +03:00
|
|
|
/**
|
2005-04-14 18:04:41 +04:00
|
|
|
* @file
|
|
|
|
*
|
|
|
|
* Returns an OS-independant basename() of a given filename.
|
|
|
|
*/
|
|
|
|
|
2005-07-04 04:13:44 +04:00
|
|
|
#ifndef OPAL_BASENAME_H
|
|
|
|
#define OPAL_BASENAME_H
|
2005-04-14 18:04:41 +04:00
|
|
|
|
2009-03-17 04:45:19 +03:00
|
|
|
#include "opal_config.h"
|
|
|
|
|
2007-07-01 21:51:34 +04:00
|
|
|
BEGIN_C_DECLS
|
2006-08-23 03:25:13 +04:00
|
|
|
|
2007-07-01 21:51:34 +04:00
|
|
|
/**
|
|
|
|
* Return the basename of a filename.
|
|
|
|
*
|
|
|
|
* @param filename The filename to examine
|
|
|
|
*
|
|
|
|
* @returns A string containing the basename, or NULL if there is an error
|
|
|
|
*
|
|
|
|
* The contents of the \em filename parameter are unchanged. This
|
|
|
|
* function returns a new string containing the basename of the
|
|
|
|
* filename (which must be eventually freed by the caller), or
|
|
|
|
* NULL if there is an error. Trailing "/" characters in the
|
|
|
|
* filename do not count, unless it is in the only part of the
|
|
|
|
* filename (e.g., "/" or "C:\").
|
|
|
|
*
|
|
|
|
* This function will do the Right Things on POSIX and
|
|
|
|
* Windows-based operating systems. For example:
|
|
|
|
*
|
|
|
|
* foo.txt returns "foo.txt"
|
2015-06-24 06:59:57 +03:00
|
|
|
*
|
2007-07-01 21:51:34 +04:00
|
|
|
* /foo/bar/baz returns "baz"
|
|
|
|
*
|
|
|
|
* /yow.c returns "yow.c"
|
|
|
|
*
|
|
|
|
* / returns "/"
|
|
|
|
*
|
|
|
|
* C:\foo\bar\baz returns "baz"
|
|
|
|
*
|
|
|
|
* D:foo.txt returns "foo.txt"
|
|
|
|
*
|
|
|
|
* E:\yow.c returns "yow.c"
|
|
|
|
*
|
|
|
|
* F: returns "F:"
|
|
|
|
*
|
|
|
|
* G:\ returns "G:"
|
2009-05-14 04:20:07 +04:00
|
|
|
*
|
|
|
|
* The caller is responsible for freeing the returned string.
|
2007-07-01 21:51:34 +04:00
|
|
|
*/
|
2009-05-14 04:20:07 +04:00
|
|
|
OPAL_DECLSPEC char *opal_basename(const char* filename) __opal_attribute_malloc__ __opal_attribute_warn_unused_result__;
|
2007-07-01 21:51:34 +04:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Return the dirname of a filename.
|
|
|
|
*
|
|
|
|
* @param filename The filename to examine
|
|
|
|
*
|
|
|
|
* @returns A string containing the dirname, or NULL if there is an error
|
|
|
|
*
|
|
|
|
* The contents of the \em filename parameter are unchanged. This
|
|
|
|
* function returns a new string containing the dirname of the
|
|
|
|
* filename (which must be eventually freed by the caller), or
|
|
|
|
* NULL if there is an error. Trailing "/" characters in the
|
|
|
|
* filename do not count, unless it is in the only part of the
|
|
|
|
* filename (e.g., "/" or "C:\").
|
|
|
|
*
|
|
|
|
* This function will do the Right Things on POSIX and
|
|
|
|
* Windows-based operating systems. For example:
|
|
|
|
*
|
|
|
|
* foo.txt returns "foo.txt"
|
2015-06-24 06:59:57 +03:00
|
|
|
*
|
2007-07-01 21:51:34 +04:00
|
|
|
* /foo/bar/baz returns "/foo/bar"
|
|
|
|
*
|
|
|
|
* /yow.c returns "/"
|
|
|
|
*
|
|
|
|
* / returns ""
|
|
|
|
*
|
|
|
|
* C:\foo\bar\baz returns "C:\foo\bar"
|
|
|
|
*
|
|
|
|
* D:foo.txt returns "D:"
|
|
|
|
*
|
|
|
|
* E:\yow.c returns "E:"
|
|
|
|
*
|
|
|
|
* F: returns ""
|
|
|
|
*
|
|
|
|
* G:\ returns ""
|
2009-05-14 04:20:07 +04:00
|
|
|
*
|
|
|
|
* The caller is responsible for freeing the returned string.
|
2007-07-01 21:51:34 +04:00
|
|
|
*/
|
2009-05-14 04:20:07 +04:00
|
|
|
OPAL_DECLSPEC char *opal_dirname(const char* filename) __opal_attribute_malloc__ __opal_attribute_warn_unused_result__;
|
2005-04-14 18:04:41 +04:00
|
|
|
|
2007-07-01 21:51:34 +04:00
|
|
|
END_C_DECLS
|
2005-04-14 18:04:41 +04:00
|
|
|
|
2005-07-04 04:13:44 +04:00
|
|
|
#endif /* OPAL_BASENAME_H */
|