問題タブ [nativecall]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
156 参照

raku - ネイティブコール。C 関数のパラメーターとして文字列を取得する方法

指定されたポインターに文字列を返す C 関数があります。

Perl6 のバージョンは次のとおりです。

正しい int を返しますが、文字列は返しません。

0 -3 (力)

それは単なるバグですか、それともここで何か問題がありますか?

同じです

0 投票する
2 に答える
184 参照

arrays - Perl 6 NativeCall CStruct 内で配列を宣言する

CStruct 内でオブジェクトの配列を宣言する方法はありますか?

ACArray[uint8]char *ポインターであり、実際には構造体内のスペースを予約していません。

の代わりにMy::Struct.new、おそらく自分でメモリを作成できます ( の代わりにMy::Struct.new()、a を使用しbuf8.allocate(xxx)てハンドルを保持し、GC がそれを取得しないようにします。nativecastそれを My::Struct にします)。次に、ポインター演算を使用して内部の文字列を見つける必要があります。構造体などですが、もっと簡単な方法があるはずです。

完全に実装されていなくても、「ここに 80 バイトを置いて、ここにポインタを置いてください」と言う簡単な方法は非常に便利です。

0 投票する
1 に答える
231 参照

c - fcntl を使用して stdout から新しいファイル記述子を作成すると、ファイルで失敗する

次のような簡単なテスト ファイルがあります。

返されるファイル記述子は -1 です。これは私が望むものではありません。しかし、REPL で同じコードを実行すると、探しているものが得られます。

fcntlREPL のようにファイルに新しいファイル記述子を作成しないのはなぜですか?

編集: OpenBSD 6.2、Rakudo 2018.02 を実行しています