我想在传递给 XSUB 的现有 perl 数组中插入和删除元素。 perlapi有av_push 、 av_pop 、 av_fetch 、 av_store和朋友用于数组操作。 我希望有“av_insert”或“av_splice”或类似的功能,但这些似乎不存在。 有av_delete ,但文档 ...
我想在传递给 XSUB 的现有 perl 数组中插入和删除元素。 perlapi有av_push 、 av_pop 、 av_fetch 、 av_store和朋友用于数组操作。 我希望有“av_insert”或“av_splice”或类似的功能,但这些似乎不存在。 有av_delete ,但文档 ...
我有 Perl XS 代码,它从返回char ** (字符串数组)的外部 C 库调用 function。 XS 代码最终将返回 Perl 一个数组引用,其中包含所有字符串结果。 或者undef失败。 我有两个问题: 在程序退出时,我得到一个核心转储,其中包含有关 memory 损坏、双重释放等的 ...
这是 XS 的相关部分,它应该将 Perl 字符串从 UTF-8 转换为代码点(无符号 32 位整数): 它抛出这个警告: 它有效并通过了我的测试。 但是,如果我想将其交付给 CPAN,则分发不应发出警告。 在 C 中用自己的代码解码它是一种解决方法(而且速度更快)。 对我来说,它看起来像是 XS ...
我正在使用 XS 创建一个使用 C 库的 Perl 模块。 出于测试目的,我创建了一个测试库,它具有两个简单的功能: 我还在 XS 中创建了一些胶水,以便现在访问 kzA() 函数:(我只展示了函数本身,但包含也在 XS 中) 因此,我将测试库编译为 fc.so,它与我的 xs 文件和我的 M ...
这是在我所知道的范围内,请在此处纠正任何混淆。 在这个问题中,我问为什么libm提供的功能尚未通过 Perl 接口向用户公开。 现在我想知道它是如何完成的。 CPAN 上有一个声称可以做的模块Math::Libm 。 这很好用,但是作为一个关于实现的问题,当我使用它时,我发现不仅 libm 被映 ...
我有一个用 C++ 编写的大型程序,并使用 Inline::CPP 从 Perl 执行。 代码似乎使用了大量内存,所以我假设存在某种泄漏。 我编写了以下代码来重现相同的问题,但要简单得多。 当我循环代码 1,000,000 次以测试代码的性能时,我发现了泄漏。 这个简单的 Perl 脚本使用 828 ...
如果我的 XS function 已通过包含祝福 object 的 SV,我如何检查该 object 是否重载了特定的 Perl 运算符? 例如,重载"" 。 我能想到的一种方法是遍历它的 class 和所有父类,寻找一个名为(""的方法。虽然这听起来有点恶心,但当你考虑后备时它会变得复杂。(后备 ...
这个问题基于: Perl:如何将所有内联 C 代码放入一个单独的文件中? , 但对于多个文件。 假设您想在名为foo.c perl 中包含 C 文件: 正如你所看到的, foo.c取决于bar.h其关联到bar.c 。 有没有办法内联:: C能编译两个foo.c和bar.c和链接bar.o ...
我想从 Perl 发送/接收 MQTT 消息。 由于各种原因(MQTT 5 支持、TLS)我不想使用现有的 Perl 库。 所以我尝试创建到Paho MQTT C Library的 XS 绑定。 我以某种方式调整了提供的示例,以使用 relly basic Perl XS 将 Perl 模块链接到 ...
我一直在试验 Perl XS C API 并遇到了障碍。 我在下面简化了我的示例。 假设现有的 struct MyObject 然后访问属性“a”或“b”并为其中一个创建 hash,我可以使用以下代码: 我想做的是像这样分享实用程序 function 中的一些功能 但是,当我在 create_obj ...
我正在尝试检查数组元素是否来自XSUB的undef ,如下所示: 如果我从 Perl 脚本运行这个子: output 是: 为什么最后一个元素没有显示undef ? ...
我正在尝试从 XSUB 设置 Perl 环境变量。 我希望它在 XSUB 退出之前立即生效。 这是我的 XS 文件Module.xs : 这是一个使用 XSUB 的 Perl 脚本: 输出是: 我想知道是否可以在不使用eval_pv()情况下设置环境变量? 是否有我可以使用的特定 API ...
是否有宏为IV 、 UV 、 STRLEN 、 Size_t和SSize_t提供正确的printf格式说明SSize_t ? perlapi 中没有列出。 C 为stdint.h提供的类型的格式说明符提供宏,例如uint32_t 。 #include <inttypes.h> # ...
我有这个 XS 代码( XsTest.xs ): 我试图弄清楚是在第 41 行使用newRV_inc()还是newRV_noinc() 。 Perl 回调在测试脚本p.pl中定义: 运行 p.pl 的p.pl是: 据我所知,如果我使用newRV_inc() : 调用newAV()时, array ...
我正在使用XS包装器模块来实现GNU科学库中的某些功能。 我没有在这里直接使用库,而是通过创建自己的库来简化问题: mylib / mylib.h : mylib / mylib.c : 使用以下命令将其编译到共享库中: 因此,我将使用mylib.so代替libg ...
Perl API宏MULTIPLICITY和PERL_IMPLICIT_CONTEXT之间是什么关系? 根据perlguts : 一个宏控制着主要的Perl构建风格: MULTIPLICITY 。 MULTIPLICITY构建具有一个C结构,该结构打包了所有解释器状态。 对于 ...
我需要从statfs获取f_type 。 我尝试修补Filesys::Df : 其次是 但这崩溃了 我该如何解决这个问题? ...
根据perldoc threads : 从Perl 5.8开始,可以使用称为解释器线程的模型进行线程编程,该模型为每个线程提供一个新的Perl解释器,并且默认情况下,不会在线程之间共享任何数据或状态信息。 上面的引用中指的是哪种类型的data或state信息? 根据perld ...
我有一个Perl模块A ,它是一个基于XS的模块。 我有一个A.xs文件和一个aux_A.c文件,其中有一些标准的C函数。 我使用DynaLoader ,并且可以工作。 现在,我有了一个新模块B ,它也是一个XS模块。 我也有B.xs文件和aux_B.c文件。 现在,我希望aux_ ...
我正在寻找不同的xs cpan模块,它们不包含它们绑定的库的actucal源代码, 例如在这个库上https://st.aticpan.org/source/NANIS/Net-Sharktools-0.009/ xs模块: https : //st.aticpan.org/source/ ...