首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用FFI::Platypus从指针引用中获取字符串值?

如何使用FFI::Platypus从指针引用中获取字符串值?
EN

Stack Overflow用户
提问于 2019-06-06 21:43:27
回答 2查看 64关注 0票数 1

我用C语言构建了一个共享库,

代码语言:javascript
复制
const char foo[] = "foo1234"; 

使用FFI::Platypus,我可以使用以下命令获取符号位置

代码语言:javascript
复制
print $ffi->find_symbol('foo');
140204212527104

如何打印出foo1234的值

EN

回答 2

Stack Overflow用户

发布于 2019-06-06 21:43:27

为了获得SVpv,您需要将“不透明”指针强制转换为Perl数据变量,

代码语言:javascript
复制
$ffi->cast(opaque => string => $ffi->find_symbol('foo'));

你可以使用see this here in the test suite.

票数 1
EN

Stack Overflow用户

发布于 2019-06-06 22:28:42

如果您知道缓冲区的位置和长度,另一个选择是从FFI::Platypus::Buffer获取buffer_to_scalar。这是一个非常接近金属的选择,因此是一个快速的选择,但它像大多数C代码一样危险,你很容易通过错误地使用它来分割错误。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56478909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档