我正在尝试将两个库粘合在一起,其中CCD_ 1正在向CCD_ 2提供脚本。这些库用于我正在编写的c++11代码中。我不能修改那些libs。
lib1
中的脚本嵌入到具有https://github.com/vector-of-bool/cmrc.
每个脚本的内容都可以使用迭代器访问,就像一样
cmrc::embedded_filesystem fs=cmrc::hpo::get_filesystem()
auto script1 = fs.open("script1")
# use iterator for script1...
但是,lib2
函数需要"物理"文件:void file(const char *);
我知道我可以将内容从lib1
迭代器转储到一个临时文件,用lib2
读取它,然后删除该文件。这个解决方案听起来不太理想,我正在寻找更好的方法。
虽然命名管道通常用于进程间通信,但它们也在进程内工作。在包括Windows在内的许多操作系统上,它们的名称都是文件系统命名空间的一部分。因此,通常可以将管道名称传递给需要文件名的库。