16.3.3 Function Parameters
The calling convention is modelled after that of CMUCL's UNIX
package: in particular, it's like the C interface except that:
- Length arguments are omitted or optional where the sensible value
is obvious. For example,
read
would be defined this way:
(read fd buffer &optional (length (length buffer))) => bytes-read
- Where C simulates “out” parameters using pointers (for instance, in
pipe()
or socketpair()
) these may be optional or omitted
in the Lisp interface: if not provided, appropriate objects will be
allocated and returned (using multiple return values if necessary).
- Some functions accept objects such as filenames or file descriptors.
Wherever these are specified as such in the C bindings, the Lisp
interface accepts designators for them as specified in the 'Types'
section above.
- A few functions have been included in sb-posix that do not correspond
exactly with their C counterparts. These are described in
See Functions with idiosyncratic bindings.