在Narwhal,我们正在使用JNA拨打libc
和getcwd
等chdir
来电。我只能用我对JNA接口的有限知识来使用它,因为它与Rhino中的JavaScript有关,专门处理原语。我需要知道如何分配一个char缓冲区,这样我就可以将它传递给getcwd
,从该缓冲区中检索一个JavaScript String,并释放缓冲区,大概是在finally
子句中。
以下是我们抓住libc
界面的方式:
以下是chdir
的实施方式:
以下是我们需要getcwd
Ruby中的解决方案或JNA的任何其他嵌入式语言都会有所帮助。
答案 0 :(得分:1)
您可以使用nio.Buffer或jna.Pointer来传递输出缓冲区,例如:
invokeString(new jna.Memory(4097), 4097)
getcwd会将一个char *返回到输入缓冲区,因此jna会将返回值设置为字符串
要支持更长的路径,您可以选择长度
在java中,新文件(“。”)。getAbsolutePath()可以获取当前路径,因此您可能不需要getcwd ......