如何在Perl XS代码中使用伪文件句柄



我正在尝试为序列化/反序列化库编写XS胶水代码,该库能够与提供write(ctx, buffer, count)/read(ctx, buffer, count)接口的任何内容一起使用。我希望能够使用我得到的伪文件句柄

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 代码中的文件句柄的所有内容的正确方法吗?

你有你需要的东西。与PerlIO*一起使用的函数确实可以处理作为 Perl 程序的文件句柄出现的所有内容。

相关内容

  • 没有找到相关文章

最新更新