【问题标题】:How to work with pseudo-filehandles in Perl XS code?如何在 Perl XS 代码中使用伪文件句柄?
【发布时间】:2012-09-19 15:25:49
【问题描述】:

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

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

所以使用FILE* 映射似乎不起作用。由于我没有找到任何好的文档,所以我玩弄并到达了以下 XS sn-p:

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

【问题讨论】:

    标签: perl xs


    【解决方案1】:

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

    【讨论】:

    • 谢谢。从我现在正在学习的东西来看,我似乎已经掌握了 Perl 的某些部分,这些部分将受益于一些文档更新......
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 2015-04-13
    • 2012-08-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多