ofstream 未创建文件(Node.js 插件)

ofstream not creating file (Node.js addon)

我正在尝试创建一个 addon for Node.js,它(除其他外)使用 ofstream.

将内容写入我的 C++ class 中的文件
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 无法 open/create 有问题的文件,如果它位于其他任何地方。比如使用~/license.txt就不行(注意:我是运行OSX).

报告的错误始终是 No such file or directory -- 即使在我实际创建 ~/license.txt.

之后也是如此

知道为什么这在一个目录中有效但在其他目录中无效吗?如果是权限问题,我会收到不同的错误消息。

作为记录,我已经看到了大约 20 个关于 "ofstream fails to create file" 的其他 SO 问题,但是将额外的标志传递给 open() 没有任何效果。我有一种感觉,这与 Node/V8.

中的 运行 有某种关系

我认为问题在于您需要以不同于 ~ 的方式查找用户目录。