我正在尝试NativeCall
运行此示例:
use NativeCall;
class p_timespec is repr('CPointer') {
has uint32 $.tv_sec;
has long $.tv_nanosecs;
}
sub clock_gettime(uint32 $clock-id, p_timespec $tspec --> uint32) is native(Str) { * };
my p_timespec $this-time;
my $result = clock_gettime( 0, $this-time);
say "$result, $this-time";
它只是段错误,当您使用指针时会发生这种情况,而您不应该这样做。在这种情况下,可能是由于声明了p_timespec
; 我实际上已将其声明为CPointer
,尽管结构应该没问题。但是,从分段错误中,我无法理解真正的问题所在。有人可以帮忙吗?