A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
attach errhandlers to some forgotten calls
[simgrid.git]
/
src
/
xbt
/
xbt_os_file.cpp
diff --git
a/src/xbt/xbt_os_file.cpp
b/src/xbt/xbt_os_file.cpp
index
1e1e9f8
..
ce487f4
100644
(file)
--- a/
src/xbt/xbt_os_file.cpp
+++ b/
src/xbt/xbt_os_file.cpp
@@
-1,40
+1,46
@@
-/* xbt_os_file.cpp -- portable interface to file-related functions
*/
+/* xbt_os_file.cpp -- portable interface to file-related functions */
-/* Copyright (c) 2017. The SimGrid Team.
- * All rights reserved. */
+/* Copyright (c) 2017-2019. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
+#include "src/internal_config.h"
+#include "xbt/asserts.h"
#include "xbt/file.hpp" /* this module */
#include "xbt/file.hpp" /* this module */
-#include "xbt/file.h"
-#include "xbt/sysdep.h"
-
#ifdef _WIN32
#include <windows.h>
#endif
#ifdef _WIN32
#include <windows.h>
#endif
+#if HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
#include <cstring>
#include <cstring>
+#include <errno.h>
#include <libgen.h> /* POSIX dirname */
#include <libgen.h> /* POSIX dirname */
-/** @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)
+simgrid::xbt::Path::Path()
{
{
- return xbt_strdup(simgrid::xbt::Path(path).getBasename().c_str());
+#if HAVE_UNISTD_H
+ char buffer[2048];
+ char* ret = getcwd(buffer, 2048);
+ xbt_assert(ret == buffer, "Error during getcwd: %s", strerror(errno));
+ path_ = std::string(buffer);
+#else
+ path_ = std::string(".");
+#endif
}
}
-std::string simgrid::xbt::Path::get
Dir
name()
+std::string simgrid::xbt::Path::get
_dir_
name()
{
std::string p(path_);
char *res = dirname(&p[0]);
return std::string(res, strlen(res));
}
{
std::string p(path_);
char *res = dirname(&p[0]);
return std::string(res, strlen(res));
}
-std::string simgrid::xbt::Path::get
Base
name()
+std::string simgrid::xbt::Path::get
_base_
name()
{
std::string p(path_);
char *res = basename(&p[0]);
{
std::string p(path_);
char *res = basename(&p[0]);