char *str(new char[path.size() + 1]);
std::memcpy(str, path.c_str(), path.size());
str[path.size()] = '\0';
string dn(dirname(str));
char *str(new char[path.size() + 1]);
std::memcpy(str, path.c_str(), path.size());
str[path.size()] = '\0';
string dn(dirname(str));