X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fb4b94da324f0fc681cf6bde77ca28277e9cfa3e..5ec2b80b686983f84ebab7c7398a29e73286deee:/src/xbt/xbt_os_file.cpp diff --git a/src/xbt/xbt_os_file.cpp b/src/xbt/xbt_os_file.cpp index 334c9b35b5..2786b5dfbe 100644 --- a/src/xbt/xbt_os_file.cpp +++ b/src/xbt/xbt_os_file.cpp @@ -1,18 +1,17 @@ /* xbt_os_file.cpp -- portable interface to file-related functions */ -/* Copyright (c) 2017-2018. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2017-2023. 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 +#include #include #endif @@ -22,24 +21,23 @@ simgrid::xbt::Path::Path() { #if HAVE_UNISTD_H - char buffer[2048]; - getcwd(buffer, 2048); - path_ = std::string(buffer); + std::array buffer; + const char* cwd = getcwd(buffer.data(), 2048); + xbt_assert(cwd != nullptr, "Error during getcwd: %s", strerror(errno)); + path_ = cwd; #else - path_ = std::string("."); + path_ = "."; #endif } -std::string simgrid::xbt::Path::get_dir_name() +std::string simgrid::xbt::Path::get_dir_name() const { std::string p(path_); - char *res = dirname(&p[0]); - return std::string(res, strlen(res)); + return dirname(&p[0]); } -std::string simgrid::xbt::Path::get_base_name() +std::string simgrid::xbt::Path::get_base_name() const { std::string p(path_); - char *res = basename(&p[0]); - return std::string(res, strlen(res)); + return basename(&p[0]); }