2

イッカクでは、JNAを使用してやlibcのような呼び出しを行っています。これは、プリミティブのみを扱うRhinoのJavaScriptに関連するため、JNAインターフェイスに関する限られた知識でしか使用できませんでした。charバッファを割り当てて、そのバッファからJavaScript文字列を取得し、おそらく句でバッファの割り当てを解除できるようにする方法を知る必要があります。getcwdchdirgetcwdfinally

libcインターフェイスを取得する方法は次のとおりです。

http://github.com/280north/narwhal/blob/34ac15261fa4acdef3867256e97d7aabb94766e0/engines/rhino/lib/fs-base.js#L32-42

chdir実装方法は次のとおりです。

http://github.com/280north/narwhal/blob/34ac15261fa4acdef3867256e97d7aabb94766e0/engines/rhino/lib/fs-base.js#L438-444

ここにソリューションが必要ですgetcwd

http://github.com/280north/narwhal/blob/34ac15261fa4acdef3867256e97d7aabb94766e0/engines/rhino/lib/fs-base.js#L416-419

RubyまたはJNA用の他の組み込み言語のソリューションが役立ちます。

4

1 に答える 1

1

nio.Buffer または jna.Pointer を使用して、次のような出力バッファーを渡すことができます。

invokeString(new jna.Memory(4097), 4097)

getcwd は char* を入力バッファーに返すため、jna は戻り値を文字列にマーシャリングします。

より長いパスをサポートするために、オプションの長さを取ることができます

Java では new File(".").getAbsolutePath() で現在のパスを取得できるので、getcwd は必要ないかもしれません...

于 2010-01-24T02:01:11.200 に答える