gpt4 book ai didi

pharo - 如何使统一 FFI 在 Pharo 中工作

转载 作者:行者123 更新时间:2023-12-01 14:17:59 27 4
gpt4 key购买 nike

我有一个 C 函数,它将字符串复制到传递给它的缓冲区中:

void get_machine(char *buf) {
/* do something to acquire the machine string */
strcpy(buf, machine_string);
}

我想从 Pharo 调用它:

machine := String new: 256.
self ffiCall: #( void get_machine(String machine) ) module: 'ffilibc.so'.

但这不起作用:machine_string 的内容不会复制到机器中。正确的做法是什么?

最佳答案

我了解到字符串缓冲区是不可变的。这就是 C 函数无法写入它的原因。

解决方案是使用 ByteArray。

关于pharo - 如何使统一 FFI 在 Pharo 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44120054/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com