Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'S4U'
[simgrid.git] / src / xbt / xbt_os_file.c
index 232ad06..43c30bb 100644 (file)
@@ -77,3 +77,18 @@ char *xbt_dirname(const char *path) {
          return dirname(xbt_strdup(path));
 #endif
 }
+/** @brief Returns the file component of a path (reimplementation of POSIX basename)
+ *
+ * The argument is never modified, and the returned value must be freed after use.
+ */
+char *xbt_basename(const char *path) {
+#if _MSC_VER
+         char file[1024];
+         char ext[1024];
+         errno_t err;
+         err = _splitpath_s(path, NULL,0, NULL,0, file,1024, ext,1024);
+         return bprintf("%s.%s",file,ext);
+#else
+         return basename(xbt_strdup(path));
+#endif
+}