Я использую модуль CFFI из python для использования функций Си в строке.Я хочу добавить слой абстракции и хотел бы автоматически сгенерировать его.Для этого мне нужно знать, какой из параметров предназначен как указатель на выходные значения.В файлах заголовка C эти аргументы могут быть идентифицированы, потому что их имя начинается с «out _».
Есть ли способ получить доступ к именам аргументов, которые установлены в заголовке?
Получить подпись без них очень просто, используя ее, вызывая метод str()
.Например,
from cffi import FFI
ffi = FFI()
ffi.cdef("...")
lib = ffi.dlopen(...)
str(lib.PointN_copy)
Дает
"<cdata 'void(*)(PointN *, PointN *)' 0x000000006EBC262C>"
К сожалению, имя аргумента и квалификатор const
пропали.Я пытался осмотреть объект, но он встроенный.Также я не смог найти информацию в модуле ffi
.Есть ли способ сделать это без разбора заголовка сам?