ofstream не создает файл (Node.js addon)

Я пытаюсь создать аддон для Node.js который (помимо прочего) записывает содержимое в файл внутри моего класса C ++, используя ofstream,

std::ofstream license_file;

std::string fileContent(*NanAsciiString(args[0]));

license_file.open(PATH);

//file doesn't yet exist, so create it
if(!license_file) {
printf("ERROR: %s (%s)\n", strerror(errno), PATH);
}

license_file <<  fileContent;
license_file.close();

Это работает нормально, если PATH установлен в тот же каталог, что и мой код Node.js (например, ./license.txt).

Тем не мение, ofstream не удается открыть / создать рассматриваемый файл, если он находится в другом месте. Например, используя ~/license.txt не работает (примечание: я использую OSX).

Об ошибке сообщается всегда No such file or directory — даже после того, как я физически создаю ~/license.txt,

Есть идеи, почему это работает в одном каталоге, но не в других? Если бы это была проблема с разрешениями, я бы ожидал другое сообщение об ошибке.

Для протокола, я видел около 20 других SO вопросов о «ofstream не удается создать файл», но передавая дополнительные флаги в open() не имеет никакого эффекта У меня такое чувство, что это как-то связано с работой внутри Node / V8.

1

Решение

Я думаю, что проблема заключается в том, что вам нужно узнать каталог пользователя по-другому, чем с помощью ~,

1

Другие решения


По вопросам рекламы [email protected]