Распределение буфера Char с JNA, Rhino, JavaScript
-
22-09-2019 - |
Вопрос
В Нарвале мы используем JNA, чтобы сделать libc
звонит как getcwd
а также chdir
. Анкет Я смог использовать это только с ограниченными знаниями о интерфейсе JNA, поскольку он относится к JavaScript в носочке, имея дело исключительно с примитивами. Мне нужно знать, как выделить буфер, чтобы я мог передать его getcwd
, получить строку JavaScript из этого буфера и разделите буфер, предположительно в finally
пункт.
Вот как мы хватаем libc
интерфейс:
Вот как chdir
реализовано:
Вот где нам нужно решение для getcwd
Решения в Ruby или любом другом встроенном языке для JNA помогут.
Решение
Вы можете использовать Nio.Buffer или JNA.Pointer для прохождения выходного буфера, что -то вроде:
invokeString(new jna.Memory(4097), 4097)
getCwd вернет char* в буфер ввода, так что JNA принесет возврат к строке
Чтобы поддержать более длинные пути, вы можете взять дополнительную длину
В Java, новый файл ("."). getabsolutepath () может получить текущий путь, поэтому вам может не понадобиться getCwd ...