你好社区我希望我能在这里遇到一些字节字符串专家。我猜 SvPVbyte 发挥作用,但如何?
我的问题。我已经使用 Perl 在 Inline:C 中成功地解析了 Perl 数组 XYZ(在数组的哈希中),示例索引为 6789:
$testn=pnp($lengthofXYZ,\@{$XYZ{$_}});
内联 C:
int pnp ( int n, SV *vertx)
AV *arrayx;
double val_of_interest;
arrayx = (AV *)SvRV( vertx );
SV **yi;
yi = av_fetch( arrayx, 6789, 0 );
val_of_interest = SvNV( *yi );
return calculation_with_val_of_interest
这完美地工作。但是假设我在 Perl $xyz="\x09\x07\x44\xaa 中有一个很长的字节字符串(大约 10-50MB)......
现在我想传递对这个 SV 的引用,并在 C 部分中通过这个字符串以 9 个字节的步长(类似 substr)走,而不是将它完全复制到自己的 C 数组中。
行走部分:前 4 个字节应与参考 4 字节值 ABC 进行检查,该值也应在函数调用中。如有必要,我可以在此之前解压缩“N”这个搜索短语并使用整数调用函数。如果位置 0 没有成功跳转/增加 9 个字节,如果成功,我将返回找到的位置。
太感谢了。