ofstream不创build文件(Node.js插件)
我试图为Node.js创build一个插件 (其中包括)使用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
)相同的目录,这工作正常。
但是,如果它位于其他地方,则不能打开/创build有问题的文件。 例如,使用~/license.txt
不起作用(注意:我正在运行OSX)。
报告的错误总是No such file or directory
– 即使我物理创build~/license.txt
。
任何想法,为什么这个工程在一个目录,但不是其他人? 如果这是一个权限问题,我会期待一个不同的错误信息。
为了logging,我已经看到关于“ofstream无法创build文件”的约20个其他SO问题,但将其他标志传递到open()
没有任何效果。 我有一种感觉,这是与Node / V8内部运行有关。
我认为这个问题是你需要以不同于使用~
方式来查找用户目录。