2

write(ctx, buffer, count)/read(ctx, buffer, count)インターフェイスを提供するものなら何でも動作できるシリアル化/逆シリアル化ライブラリのXSグルーコードを書き込もうとしています。取得した疑似ファイルハンドルを使用できるようにしたい

open $reader, '<', \$in;
open $writer, '>', \$out;

したがって、FILE*マッピングの使用は機能しないようです。良いドキュメントが見つからなかったので、遊んで次のXSスニペットにたどり着きました。

void
write_buf (fh, string);
INPUT:
PerlIO* fh;
SV* string;
CODE:
STRLEN length = SvLEN (string);
char* buf = SvPV (string, length);
PerlIO_write (fh, buf, length);

それは私が望むことをしているようですが、これはPerlがXSコードのファイルハンドルと見なす可能性のあるすべてを処理する適切な方法ですか?

4

1 に答える 1

2

必要なものがあります。動作する関数はPerlIO*、Perlプログラムのファイルハンドルとして表示されるすべてのものを実際に処理します。

于 2012-09-19T15:33:58.143 に答える