我正在尝试为 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 中运行有关。