【发布时间】:2015-05-20 19:34:18
【问题描述】:
我正在尝试创建一个 addon for Node.js,它(除其他外)使用 ofstream 将内容写入我的 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 个其他关于“ofstream 无法创建文件”的 SO 问题,但是将其他标志传递给 open() 没有效果。我感觉这在某种程度上与在 Node/V8 中运行有关。
【问题讨论】:
标签: c++ node.js v8 node.js-addon