X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/244d7851457bfd373983edfb00c80760239dc8ab..e2f4c322102dab25d663a761157720cbbb11702d:/src/xbt/xbt_os_file.cpp diff --git a/src/xbt/xbt_os_file.cpp b/src/xbt/xbt_os_file.cpp index 1248350f79..ce487f4ebd 100644 --- a/src/xbt/xbt_os_file.cpp +++ b/src/xbt/xbt_os_file.cpp @@ -1,28 +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. */ +#include "src/internal_config.h" +#include "xbt/asserts.h" #include "xbt/file.hpp" /* this module */ #ifdef _WIN32 #include #endif +#if HAVE_UNISTD_H +#include +#endif + #include +#include #include /* POSIX dirname */ -std::string simgrid::xbt::Path::getDirname() +simgrid::xbt::Path::Path() +{ +#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 p(path_); char *res = dirname(&p[0]); return std::string(res, strlen(res)); } -std::string simgrid::xbt::Path::getBasename() +std::string simgrid::xbt::Path::get_base_name() { std::string p(path_); char *res = basename(&p[0]);