用JNA,Rhino,JavaScript分配炭缓冲区
-
22-09-2019 - |
题
在戒指中,我们正在使用JNA来制作 libc
呼叫 getcwd
和 chdir
. 。我只能以有限的了解JNA界面的了解,因为它与Rhino中的JavaScript有关,专门处理原语。我需要知道如何分配char缓冲区,以便我可以将其传递给 getcwd
, ,从该缓冲区检索JavaScript字符串,然后对缓冲区进行处理,大概是在 finally
条款。
这是我们抓住的方式 libc
界面:
就是这样 chdir
已实施:
这是我们需要解决方案的地方 getcwd
Ruby或任何其他嵌入式JNA的解决方案都会有所帮助。
解决方案
您可以使用nio.buffer或jna.pointer传递输出缓冲区,例如:
invokeString(new jna.Memory(4097), 4097)
getCWD会将char*返回到输入缓冲区,因此JNA将返回到字符串
为了支持更长的路径,您可以选择可选的长度
在Java,新文件(“。”)。GetAbsolutepath()可以获取当前路径,因此您可能不需要GetCWD ...
不隶属于 StackOverflow