FFI の基本的な使い方FFI API の詳細に深く立ち入る前に、よくあるタスクに対する FFI API の使い方が どれほど簡単かを示す例をいくつか見てみましょう。
例1 共有ライブラリの関数を呼ぶ 上の例の出力は以下となります。 Hello world!
例2 関数を呼び出し、構造体を引数経由で返す 上の例の出力は、 たとえば以下のようになります。
int(0)
int(1555946835)
object(FFI\CData:struct timezone)#3 (2) {
["tz_minuteswest"]=>
int(0)
["tz_dsttime"]=>
int(0)
}
例3 既存の C の変数にアクセスする 上の例の出力は以下となります。 int(0)
例4 C の変数を作成して書き換える 上の例の出力は以下となります。 int(0) int(5) int(7)
例5 C の配列を扱う 上の例の出力は以下となります。 int(25) int(523776) int(1024) int(8192)
例6 C の enum を扱う 上の例の出力は以下となります。 int(0) int(2) int(3) |