ofstream不创建文件(Node.js addon)

时间:2015-05-20 19:34:19

标签: c++ node.js v8 node.js-addon

我正在尝试使用ofstream创建一个addon for Node.js(其中包括)将内容写入我的C ++类中的文件。

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个关于&#34; ofstream的其他SO问题无法创建文件&#34;但将其他标志传递到open()无效。我有一种感觉这与在Node / V8中运行有点相关。

1 个答案:

答案 0 :(得分:1)

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