1

我正在尝试为 Node.js 创建一个插件,该插件(除其他外)使用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如果文件位于其他任何地方,则无法打开/创建相关文件。例如, using~/license.txt不起作用(注意:我正在运行 OSX)。

报告的错误总是No such file or directory- 即使在我物理创建之后~/license.txt

任何想法为什么这适用于一个目录而不是其他目录?如果这是权限问题,我会期待不同的错误消息。

作为记录,我已经看到了大约 20 个其他关于“ofstream 无法创建文件”的 SO 问题,但是将其他标志传递给open()没有效果。我感觉这在某种程度上与在 Node/V8 中运行有关。

4

1 回答 1

1

我认为问题在于您需要以不同于使用~.

于 2015-05-20T19:52:39.890 回答