dynamic-ffi:通过解析头文件自动定义Racket与C的绑定

时间:2024-06-11 18:47:51
【文件属性】:

文件名称:dynamic-ffi:通过解析头文件自动定义Racket与C的绑定

文件大小:37KB

文件格式:ZIP

更新时间:2024-06-11 18:47:51

Racket

动态ffi 通过clang从C标头中收集*声明语法树数据。 该模块当前仅适用于GNU / Linux和macOS。 警告:使用前请阅读本节 像Racket的内置ffi/unsafe模块一样,该库允许Racket使用不受Racket内存管理的C函数和数据结构。 默认情况下,Racket无法为使用此库创建的FFI对象提供安全保证。 该库的用户将需要在C语言中自我实施内存管理和/或将FFI对象手动公开给Racket的垃圾收集器。 应格外小心,以确保通过此库或Racket的内置FFI绑定的C函数不包含诸如缓冲区溢出之类的错误,这些错误可能会破坏运行时,导致未定义的行为并阻止Racket提供有用的错误消息。 该库的用户应格外谨慎。 该库使从Racket调用C函数变得更容易,但并没有使其更安全。 最后: 将未经处理的用户输入传递给该库中的任何函数都是非常危险的。 在任何情况下都不应该这样做


【文件预览】:
dynamic-ffi-master
----.gitignore(87B)
----README.md(2KB)
----export.rkt(10KB)
----scribblings()
--------dynamic-ffi.scrbl(8KB)
----make.rkt(4KB)
----test()
--------typedef-struct.rkt(819B)
--------broken()
--------inline.rkt(4KB)
--------libc.rkt(722B)
--------manual()
----runtime-paths.rkt(2KB)
----common.rkt(1KB)
----meta.rkt(6KB)
----unsafe.rkt(232B)
----info.rkt(530B)
----template-files()
--------mapped-ffi-template(520B)
--------defined-ffi-template(214B)
----inline.rkt(5KB)
----ffi.rkt(5KB)
----LICENSE.txt(526B)
----.travis.yml(2KB)
----core()
--------clang-export.c(6KB)
--------wrap-fork.h(154B)
--------clang-plugin.hh(3KB)
--------clang-plugin.cc(14KB)
--------wrap-fork.c(8KB)
--------dynamic-ffi.c(6KB)
--------clang-export.h(3KB)
----Makefile(362B)
----cached.rkt(4KB)
----main.rkt(912B)

网友评论