FFI(3) Library Functions Manual FFI(3)

# [NAME](#NAME)

`FFI` — Foreign Function Interface

# [LIBRARY](#LIBRARY)

libffi, -lffi

# [SYNOPSIS](#SYNOPSIS)

`#include <ffi.h>`

`ffi_status`  
`ffi_prep_cif`(`ffi_cif *cif`, `ffi_abi abi`, `unsigned int nargs`, `ffi_type *rtype`, `ffi_type **atypes`);

`void`  
`ffi_prep_cif_var`(`ffi_cif *cif`, `ffi_abi abi`, `unsigned int nfixedargs`, `unsigned int ntotalargs`, `ffi_type *rtype`, `ffi_type **atypes`);

`void`  
`ffi_call`(`ffi_cif *cif`, `void (*fn)(void)`, `void *rvalue`, `void **avalue`);

# [DESCRIPTION](#DESCRIPTION)

The foreign function interface provides a mechanism by which a function can generate a call to another function at runtime without requiring knowledge of the called function's interface at compile time.

# [SEE ALSO](#SEE_ALSO)

[ffi\_prep\_cif(3)](/man/os/libffi/ffi_prep_cif.3), [ffi\_prep\_cif\_var(3)](/man/os/libffi/ffi_prep_cif_var.3), [ffi\_call(3)](/man/os/libffi/ffi_call.3)

February 15, 2008

---

Document: ffi(3) from libffi 3.8.0-r1 (Chainguard OS)
Source: https://github.com/libffi/libffi.git
