编辑说明:此问题来自 Rust 1.0 版本之前的版本,使用了在 Rust 1.0 代码中不存在的术语和功能。所表达的概念仍然相关。 我需要在我的 Rust 程序中通过 POSIX 文件描述符读取外部进程提供的数据。文件描述符连接保持了很长时间(几个小时),另一侧不时地向我传递数据。...
我注意到在C中调用Haskell函数的开销很大,比本地C函数调用的开销要大得多。为了把问题简化到它的本质上,我编写了一个程序,它只是初始化了Haskell运行时,在其中运行了一个循环,调用一个空函数100,000,000次,然后返回。 如果将函数内联,该程序需要0.003秒。调用用C编写的空函...
我正在编写一个开源补丁,用于使用字体库,或者更精确地说是在 C 语言中使用字体库的 Haskell 绑定(FTGL)。 我正在指向其中一个数据结构中的 Font 类型,该类型定义如下:type Font = Ptr Font_Opaque data Font_Opaque 很不幸,为了适应我正...
我和同事一直在考虑如何通过 FFI 从 C99 代码中返回 <stdbool.h> (即 _Bool) 到 Rust 中的 bool。 我们想要在 Rust 中使用以下 C99 代码: bool myfunc(void) { ... } 我们使用 extern C 块...
是否可以使用FFI或其他技巧,在GHC上从Haskell中调用Clojure函数?我希望在GHC范围内实现这一点,而不是使用Frege。我还希望将主程序保持在Haskell中(这意味着应该从Haskell调用Clojure函数,而不是反过来)。 如何做到这一点?
我想在Python的ctypes中复制以下C代码:main() { long *ptr = (long *)0x7fff96000000; printf("%lx",*ptr); } 我知道如何将这个内存位置作为函数指针调用,但不知道如何进行普通的解引用操作:from ctypes i...
我有一个关于Haskell C FFI的问题,具体是关于如何访问由C库导出的静态数据结构。 我要包装的C库有像下面的FOO_GEORGE这样的静态数据结构,以以下方式导出:static struct foo_struct foo_table[] = { /* list of foo stru...