From 2017e4e3b4f16dda1c3ed3735925e18f7d08d52f Mon Sep 17 00:00:00 2001 From: Antonin Portelli Date: Mon, 7 May 2018 18:12:22 +0100 Subject: [PATCH] Hadrons: more verbose directory creation error --- extras/Hadrons/EigenPack.hpp | 16 ++++++++++------ extras/Hadrons/Module.hpp | 6 ++++-- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/extras/Hadrons/EigenPack.hpp b/extras/Hadrons/EigenPack.hpp index 83dccf93..d1f6e829 100644 --- a/extras/Hadrons/EigenPack.hpp +++ b/extras/Hadrons/EigenPack.hpp @@ -170,11 +170,13 @@ protected: { ScidacWriter binWriter(evec[0]._grid->IsBoss()); XmlWriter xmlWriter("", "eigenPackPar"); - std::string d = dirname(filename); + std::string d = dirname(filename); + int status = mkdir(d); - if (mkdir(d)) + if (status) { - HADRONS_ERROR(Io, "cannot create directory '" + d + "'");\ + HADRONS_ERROR(Io, "cannot create directory '" + d + + "' (status " + std::to_string(status) + ")"); } xmlWriter.pushXmlString(record.operatorXml); xmlWriter.pushXmlString(record.solverXml); @@ -199,11 +201,13 @@ protected: ScidacWriter binWriter(evec._grid->IsBoss()); XmlWriter xmlWriter("", "eigenPackPar"); VecRecord vecRecord; - std::string d = dirname(filename); + std::string d = dirname(filename); + int status = mkdir(d); - if (mkdir(d)) + if (status) { - HADRONS_ERROR(Io, "cannot create directory '" + d + "'");\ + HADRONS_ERROR(Io, "cannot create directory '" + d + + "' (status " + std::to_string(status) + ")"); } xmlWriter.pushXmlString(record.operatorXml); xmlWriter.pushXmlString(record.solverXml); diff --git a/extras/Hadrons/Module.hpp b/extras/Hadrons/Module.hpp index 7f8b7796..0fe6858d 100644 --- a/extras/Hadrons/Module.hpp +++ b/extras/Hadrons/Module.hpp @@ -123,10 +123,12 @@ MACRO_REDIRECT(__VA_ARGS__, envTmpLat5, envTmpLat4)(__VA_ARGS__) if (env().getGrid()->IsBoss())\ {\ std::string _dirname = dirname(ioStem);\ + int _status = mkdir(_dirname);\ \ - if (mkdir(_dirname))\ + if (_status)\ {\ - HADRONS_ERROR(Io, "cannot create directory '" + _dirname + "'");\ + HADRONS_ERROR(Io, "cannot create directory '" + _dirname \ + + "' (status " + std::to_string(_status) + ")");\ }\ {\ ResultWriter _writer(RESULT_FILE_NAME(ioStem));\