Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Add xbt_basename to the xbt/file module
[simgrid.git] / src / xbt / xbt_os_file.c
index 232ad06..39dff28 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",drive,dir);
+#else
+         return basename(xbt_strdup(path));
+#endif
+}