8.5.1 Dl Objects
Keywords: lib

##
8.5.1 Dl Objects

Dl objects, as returned by `open()` above, have the following methods:

`close`()
  Free all resources, except the memory.

`sym`(name)
  Return the pointer for the function named name, as a number, if it exists in the referenced shared object, otherwise `None`. This is useful in code like:

        >>> if a.sym('time'):
        ...     a.call('time')
        ... else:
        ...     time.time()

  (Note that this function will return a non-zero number, as zero is the `NULL` pointer)

`call`(name[, arg1[, arg2...]])
  Call the function named name in the referenced shared object. The arguments must be either Python integers, which will be passed as is, Python strings, to which a pointer will be passed, or `None`, which will be passed as `NULL`. Note that strings should only be passed to functions as `const char*`, as Python will not like its string mutated.

  There must be at most 10 arguments, and arguments not given will be treated as `None`. The function's return value must be a C `long`, which is a Python integer.