Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use std::atomic instead of __sync_fetch_and_add for portability
[simgrid.git] / src / xbt / xbt_os_file.c
index 232ad06..a14df25 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
+}