Python, CFFI: получить имена аргументов из файла заголовка - PullRequest
0 голосов
/ 15 декабря 2018

Я использую модуль 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.Есть ли способ сделать это без разбора заголовка сам?

...