dirname.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /* Take file names apart into directory and base names.
  2. Copyright (C) 1998, 2001, 2003-2006, 2009-2023 Free Software Foundation,
  3. Inc.
  4. This file is free software: you can redistribute it and/or modify
  5. it under the terms of the GNU Lesser General Public License as
  6. published by the Free Software Foundation; either version 2.1 of the
  7. License, or (at your option) any later version.
  8. This file is distributed in the hope that it will be useful,
  9. but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. GNU Lesser General Public License for more details.
  12. You should have received a copy of the GNU Lesser General Public License
  13. along with this program. If not, see <https://www.gnu.org/licenses/>. */
  14. #ifndef DIRNAME_H_
  15. # define DIRNAME_H_ 1
  16. # include <stdlib.h>
  17. # include "filename.h"
  18. # include "basename-lgpl.h"
  19. # ifndef DIRECTORY_SEPARATOR
  20. # define DIRECTORY_SEPARATOR '/'
  21. # endif
  22. #ifdef __cplusplus
  23. extern "C" {
  24. #endif
  25. # if GNULIB_DIRNAME
  26. char *base_name (char const *file)
  27. _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
  28. _GL_ATTRIBUTE_RETURNS_NONNULL;
  29. char *dir_name (char const *file)
  30. _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE
  31. _GL_ATTRIBUTE_RETURNS_NONNULL;
  32. # endif
  33. char *mdir_name (char const *file)
  34. _GL_ATTRIBUTE_MALLOC _GL_ATTRIBUTE_DEALLOC_FREE;
  35. size_t dir_len (char const *file) _GL_ATTRIBUTE_PURE;
  36. bool strip_trailing_slashes (char *file);
  37. #ifdef __cplusplus
  38. } /* extern "C" */
  39. #endif
  40. #endif /* not DIRNAME_H_ */