April 2016
Intermediate to advanced
486 pages
9h 21m
English
The CFFI library offers options very similar to ctypes, but it's a bit more direct. Unlike the ctypes library, a C compiler is really a necessity for CFFI. With it comes the opportunity to directly call your C compiler in a very easy way:
>>> import cffi >>> ffi = cffi.FFI() >>> ffi.cdef('int printf(const char* format, ...);') >>> libc = ffi.dlopen(None) >>> arg = ffi.new('char[]', b'spam') >>> libc.printf(arg) 4 spam>>>
Okay… so that looks a bit weird right? We had to define how the printf function looks and specify the arguments to printf with a valid C type declaration. Getting back to the declarations, however, instead of None to ffi.dlopen, you can also specify the library you wish to load. If you remember the ctypes.util.find_library ...