Declaring and Calling Functions

Functions are declared using the Library object's declare() method. Once declared, functions can be called using standard function syntax.

Prerequiste Understanding

See ABI.

Example: No input parameters

In this example, we declare the libc clock() function, which returns the elapsed time since system startup, then fetch and output that value.

const clock = lib.declare("clock", ctypes.default_abi, ctypes.unsigned_long);

console.log("Clocks since startup: " + clock());

The clock() function requires no input parameters; it simply returns an unsigned long.

Example: Multiple input parameters

This example declares the libc asctime() function, which converts a time structure into a string.

const asctime = lib.declare("asctime", ctypes.default_abi, ctypes.char.ptr, struct_tm.ptr);

For a more complete version of this example (including the implementation of the struct_tm type), see the structures example.

Returned values

If the return type can fit into a JavaScript number without loss (that is, it's a number 32 bits or smaller, or is a double or float), then the function just return a JavaScript number. For everything else it returns a ctypes object representing the return value (including 64-bit integers).