From: Martin Quinson Date: Mon, 31 Dec 2018 17:37:41 +0000 (+0100) Subject: New function: xbt::Path() gets the CWD X-Git-Tag: v3_22~728 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/fb4b94da324f0fc681cf6bde77ca28277e9cfa3e New function: xbt::Path() gets the CWD --- diff --git a/include/xbt/file.hpp b/include/xbt/file.hpp index 159891a03d..5a01a13c62 100644 --- a/include/xbt/file.hpp +++ b/include/xbt/file.hpp @@ -1,5 +1,4 @@ -/* Copyright (c) 2017-2018. The SimGrid Team. - * All rights reserved. */ +/* Copyright (c) 2017-2018. 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. */ @@ -15,7 +14,11 @@ namespace xbt { class Path { public: + /** Build a path from the current working directory (CWD) */ + explicit Path(); + /** Build a path from the provided parameter */ explicit Path(const char* path): path_(path) {} + /** Build a path from the provided parameter */ explicit Path(std::string path): path_(std::move(path)) {} /** @brief Returns the full path name */ diff --git a/src/xbt/xbt_os_file.cpp b/src/xbt/xbt_os_file.cpp index edf22816ae..334c9b35b5 100644 --- a/src/xbt/xbt_os_file.cpp +++ b/src/xbt/xbt_os_file.cpp @@ -1,20 +1,35 @@ -/* xbt_os_file.cpp -- portable interface to file-related functions */ +/* xbt_os_file.cpp -- portable interface to file-related functions */ -/* Copyright (c) 2017-2018. The SimGrid Team. - * All rights reserved. */ +/* Copyright (c) 2017-2018. 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/file.hpp" /* this module */ #ifdef _WIN32 #include #endif +#if HAVE_UNISTD_H +#include +#endif + #include #include /* POSIX dirname */ +simgrid::xbt::Path::Path() +{ +#if HAVE_UNISTD_H + char buffer[2048]; + getcwd(buffer, 2048); + path_ = std::string(buffer); +#else + path_ = std::string("."); +#endif +} + std::string simgrid::xbt::Path::get_dir_name() { std::string p(path_);